@RequestHeader
在方法中接收请求头(RequestHeader)当中的信息
@CookieValue
用来接收浏览发送过来的cookies值
与上面的接收方式一样
@CookieValue("JSESSIONID") String JsessionID
传值方式(服务器如何传到jsp)SpringMVCProject3
取数据,一般从域当中取出来
ModelAndView
- 需要自己创建
- 既包含模型也包含视图
ModelMap
- ModelMap对象主要用于传递控制方法处理数据到结果页面
- 也就是说我们把结果页面上需要的数据放到ModelMap对象中即可
- request对象的setAttribute方法的作用: 用来在一个请求过程中传递处理的数据。
- 使用方法与model一样
Model
会自动传一个Model进去服务器
- Model 和 ModelMap 的实例都是spirng mvc框架来自动创建并作为控制器方法参数传入,用户无需自己创建
- 可以简单地将model的实现类理解成一个Map
- Request级别的模型数据
- Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类
- 方法介绍
添加键值属性对
Model addAttribute(String attributeName, Object attributeValue);
将所添加的作为一个Map对象
Map<String, Object> asMap();
以属性的类型首字母小写为键 添加属性
Model addAttribute(Object attributeValue);
比如传入一个Goods对象,则以goods为键:
goods=Goods{name='pig', price='28'}
取法为${goods.name},${goods.price}
以集合中数据的类型作为key
将所提供的Collection中所有属性复制到zhegeMap中,如果有同类型会存在覆盖现象
ArrayList<Object> list = new ArrayList<>();
list.add("cainan");
list.add(78);
model.addAttribute(list);
输出为:string=蔡楠,integer=78
将attributes中的内容复制到当前的model中
如果当前model存在相同内容,不会被覆盖
Model mergeAttributes(Map<String, ?> attributes);
是否包含某一属性
boolean containsAttribute(String attributeName);
@SessionAttributes注解
将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以共享这个属性
//把model当中key为name的转存到session域中
//types 把model当中指定类型全部写到session域
@SessionAttributes(value="name")
@SessionAttributes(types = String.class)
@SessionAttribute注解
使用@SessionAttribute来访问预先存在的全局会话属性
如果没有则会报错
@ModelAttribute
1.修改处理方法的参数时,自动把该参数放到model当中
若不处理,则默认键名为类的首字母小写的格式,如user
在方法定义上使用 @ModelAttribute 注解,Spring MVC 在调用目标处理方法前,
会先逐个调用在方法级上标注了@ModelAttribute 的方法。
2,此方法在对应的RequestMapping映射方法执行之前自动调用
调用时也会将model传进去及增加内容(model.addAttribute)
若在里面设置了与requestMapping方法相同的键名,则会被覆盖掉,当然覆盖的话并不是全覆盖,若requestMapping方法未设置某一字段 值,而此方法又有则不会覆盖
当然在requestMapping中若不注解@ModelAttribute则就是真正的替换