来自控制器的代码:
@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.jsp :
<c:forEach items="${items}" var="item">
${item}
</c:forEach>
在浏览器中,我获得了从itemService.getItems().
返回的元素
Spring如何发现model
map包含值为请求属性?
答案 0 :(得分:1)
DispatcherServlet是否将Map类型的所有参数的内容复制到请求属性?
是的,Spring MVC将所有参数从模型复制到 HttpServletRequest 对象。 Spring之所以选择不直接使用 HttpServeltRequest ,是因为要求他们希望尽可能独立于视图技术,因此能够驱动不需要的视图技术# 39; t取决于 HttpServeltRequest
将模型公开为请求参数是视图的一个方面,如果您查看从InternalResourceView延伸的SpringMVC AbstractView的来源,您将找到相应的代码。保存exposeModelAsRequestAttributes方法