ModelMap
ModelMap 对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap 对象中即可,request 对象的 setAttribute 方法的作用: 用来在一个请求过程中传递处理的数据。 使用方法与 model 一样
Model
Model 和 ModelMap 的实例都是 spirng mvc 框架来自动创建并作为控制器方法参数传入,用户无需自己创建,可以简单地将 model 的实现类理解成一个 Map,Request 级别的模型数据,Model 是一个接口, 其实现类为ExtendedModelMap,继承了 ModelMap 类
方法介绍
Model addAttribute(String attributeName, Object attributeValue):添加键值对属性
Map<String, Object> asMap():将当前的 mode l转换成 Map
Model addAttribute(Object attributeValue):以属性的类型为键添加属性
Model addAllAttributes(Map<String, ?> attributes):将 attributes 中的内容复制到当前的 model 中,如果当前model 存在相同内容,会被覆盖
Model addAllAttributes(Collection<?> attributeValues):以集合中数据的类型做为key,将所提供的 Collectio中的所有属性复制到这个 Map 中,如果有同类型会存在覆盖现象
Model mergeAttributes(Map<String, ?> attributes):将 attributes 中的内容复制到当前的 model 中,如果当前model 存在相同内容,不会被覆盖
boolean containsAttribute(String attributeName)
ModelAndView
需要自己创建,既包含模型也包含视图
@SessionAttributes注解
将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以共享这个属性
value
通过指定 key 将 model 数据放到 session 域当中
type
把指定类型的模型数据放到 session 域当中
@SessionAttribute注解
使用 @SessionAttribute 来访问预先存在的全局会话属性
@ModelAttribute
作用
1.修改处理方法的参数时,自动把该参数放到 model 当中
在方法定义上使用 @ModelAttribute 注解,Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute 的方法。