三者的区别
Model
Model是一个接口,它的实现类ExtendModelMap继承自ModelMap类 public class ExtendModelMap extends ModelMap implements Model
ModelMap
ModelMap继承LinkedHashMappublic class ModelMap extends LinkedHashMap<String ,Object>
ModelMap对象主要用于将数据传递到前端页面。
//存放数据的具体的方法
addAttribute(String key,Object value);
JSP页面获取数据的方法如下:
<!--通过EL表达式来获取ModelMap中存放的数据-->
${key}
ModelMap本身不能设置页面的跳转的URL地址或者物理跳转地址,我们可以通过控制器方法的返回值来设置。
ModelAndView
ModelAndView指的是模型与视图的集合,它的实例需要手动去创建 常用方法:- 设置转向地址:
ModelAndView mav = new ModelAndView("viewname");
/*或者通过下面方式
* ModelAndView mav = new ModelAndView();
* mav.setViewName("viewname");
*/
- 将控制器方法中处理的数据传递到结果页面,也就是把结果页面上需要的数据放在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