ModelAndVied的使用注意点

<!-- https://mvnrepository.com/artifact/org.springframework/org.springframework.web.servlet -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>org.springframework.web.servlet</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

ModelAndView正确引入包应该是import org.springframework.web.servlet.ModelAndView;

若不幸引入了import org.springframework.web.portlet.ModelAndView;那后果你懂的, 

ModelAndView以org.springframework.ui.ModelMap的形式来保持模型数据,通过构造方法传入的或者通过实例方法添加的模型数据都将添加到这个ModelMap中。至于ModelMap中保持的模型数据将会在视图渲染阶段,由具体的View实现类来获取并使用。 

我们需要为添加到ModelAndView的一组或者多组模型数据提供相应的键(Key),以便具体的View实现类可以根据这些键获取具体的模型数据,然后公开给视图模板。通常,模型中的数据对应的键需要与视图模板中的标志符相对应,如图所示:

基于JSP/JSTL模板的视图实现,通常是将模型数据通过HttpServletRequest的属性(Attribute)的形式公开给具体的模板。而像基于Velocity之类的通用模板引擎的视图实现,则会将ModelAndView中的模型数据复制到它们自己的数据获取上下文中,比如Velocity的Context。

但不管什么视图类型,对应的视图模板都将可以通过添加到ModelAndView的模型数据的键来获取模型数据,并合并到最终的视图输出结果中。

猜你喜欢

转载自blog.csdn.net/weixin_42114097/article/details/81625554
今日推荐