Model、ModelMap和ModelAndView的用法总结

三者的区别

Model

Model是一个接口,它的实现类ExtendModelMap继承自ModelMap类
    public class ExtendModelMap extends ModelMap implements Model

ModelMap

ModelMap继承LinkedHashMap
public class ModelMap extends LinkedHashMap<String ,Object>
ModelMap对象主要用于将数据传递到前端页面。
//存放数据的具体的方法
addAttribute(String key,Object value);

JSP页面获取数据的方法如下:

<!--通过EL表达式来获取ModelMap中存放的数据-->
${key}
ModelMap本身不能设置页面的跳转的URL地址或者物理跳转地址,我们可以通过控制器方法的返回值来设置。

ModelAndView

ModelAndView指的是模型与视图的集合,它的实例需要手动去创建 常用方法:
  1. 设置转向地址:
ModelAndView mav = new ModelAndView("viewname");
/*或者通过下面方式
*   ModelAndView mav = new ModelAndView();
*   mav.setViewName("viewname");
*/
  1. 将控制器方法中处理的数据传递到结果页面,也就是把结果页面上需要的数据放在ModelAndView对象中即可,其作用类似于request中的setAttribute()方法的作用,用来在一个请求过程中传递处理的数据。
ModelAndView mav = new ModelAndView();
//这两种用法不一样,需要在运用中体会
mav.addObject(String name;Object value);//向模型中添加属性
mav.addObjext(Object value);//使用参数名生成模型添加属性

参考文档:
https://blog.csdn.net/qq_41357573/article/details/84675535

猜你喜欢

转载自blog.csdn.net/qq_41357573/article/details/84679712
今日推荐