Spring中Model、ModelMap及ModelAndView之间的区别+传递参数

org.springframework.ui.Model(接口)
传递数据,Spring框架自动创建它的一个实现类,如BindingAwareModelMap

org.springframework.ui.ModelMap(类)
传递数据,Spring框架自动创建modelmap的实例,并作为controller方法的参数传入,用户无需自己创建对象。
ModelMap对象主要用于把controller方法处理的数据传递到jsp界面,在controller方法中把jsp界面需要的数据放到ModelMap对象中即可。
它的作用类似request对象的setAttribute方法。在视图层通过request找到ModelMap中的数据。
Modelmap本身不能设置页面跳转的url,可以通过controller方法的返回值来设置跳转的url。

org.springframework.web.servlet.ModelAndView(类):
设置转向地址,;传递数据ModelAndView的实例是由用户手动创建的,这也是和ModelMap的一个区别,
controller方法的返回值如果是ModelAndView,则其即包含模型数据信息,又包含视图信息,
这样SpringMVC将使用包含的视图对模型数据进行渲染,可以简单地将模型数据看成一个Map<String, Object>对象。
使用addObject方法即可ModelAndView addObject(String attributeName, @Nullable Object attributeValue)

还可以使用Map、Model和ModelMap来向前台页面传参

使用HashMap传参

使用ModelAndView传参

使用request传参

使用session传参

 
原文地址:https://www.cnblogs.com/hongchengshise/p/10527788.html