Java springmvc控制器

Java springmvc控制器,java,spring-mvc,controller,Java,Spring Mvc,Controller,来自控制器的代码: @Controller public class HomeController { @Autowired private ItemService itemService; @RequestMapping("/home") public String showHomePage(Map<String, Object> model) { model.put("items", itemService.getItems

来自控制器的代码:

@Controller
public class HomeController {

    @Autowired
    private ItemService itemService;


    @RequestMapping("/home")
    public String showHomePage(Map<String, Object> model) {

        model.put("items", itemService.getItems());

        return "home";
    }
}
@控制器
公共类家庭控制器{
@自动连线
私人项目服务项目服务;
@请求映射(“/home”)
公共字符串显示主页(地图模型){
model.put(“items”,itemService.getItems());
返回“家”;
}
}
以及通讯员home.jsp的一部分:

<c:forEach items="${items}" var="item">
   ${item}
</c:forEach>

${item}
在浏览器中,我获取从
itemService.getItems()返回的元素。

Spring如何发现
model
map包含作为请求属性的值?

DispatcherServlet是否将map类型的所有参数的内容复制到请求属性

是的,SpringMVC将所有参数从模型复制到HttpServletRequest对象。Spring人员之所以选择不直接使用HttpServeltRequest,是因为他们希望尽可能独立于视图技术,因此能够驱动不依赖HttpServeltRequest的视图技术


将模型作为请求参数公开是视图的一个方面,如果您查看SpringMVC的源代码,您将找到合适的代码,SpringMVC的源代码扩展了保存方法的Spring DispatcherServlet。它还可以确定应该调用哪个控制器以及该控制器上的哪个方法。但是DispatcherServlet如何确定应该将映射中的值复制到请求属性?我的意思是模型是一个简单的参数。。。DispatcherServlet是否将类型映射的所有参数的内容复制到请求属性?文档中说是^^