SSM学习之4:@RequestHeader,@CookieValue,传值方式

@RequestHeader

在方法中接收请求头(RequestHeader)当中的信息
SSM学习之4:@RequestHeader,@CookieValue,传值方式_第1张图片
在这里插入图片描述

@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 asMap();
以属性的类型首字母小写为键  添加属性
 Model addAttribute(Object attributeValue);
 比如传入一个Goods对象,则以goods为键:
 goods=Goods{name='pig', price='28'}
 取法为${goods.name},${goods.price}
以集合中数据的类型作为key
将所提供的Collection中所有属性复制到zhegeMap中,如果有同类型会存在覆盖现象
ArrayList list = new ArrayList<>();
        list.add("cainan");
        list.add(78);
        model.addAttribute(list);
输出为:string=蔡楠,integer=78  
 
  
将attributes中的内容复制到当前的model中
如果当前model存在相同内容,不会被覆盖
Model mergeAttributes(Map attributes);

是否包含某一属性
 boolean containsAttribute(String attributeName);

@SessionAttributes注解
将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以共享这个属性
SSM学习之4:@RequestHeader,@CookieValue,传值方式_第2张图片
SSM学习之4:@RequestHeader,@CookieValue,传值方式_第3张图片
SSM学习之4:@RequestHeader,@CookieValue,传值方式_第4张图片

//把model当中key为name的转存到session域中
//types 把model当中指定类型全部写到session域
@SessionAttributes(value="name")
@SessionAttributes(types = String.class)

@SessionAttribute注解
使用@SessionAttribute来访问预先存在的全局会话属性
如果没有则会报错
SSM学习之4:@RequestHeader,@CookieValue,传值方式_第5张图片
SSM学习之4:@RequestHeader,@CookieValue,传值方式_第6张图片
@ModelAttribute
1.修改处理方法的参数时,自动把该参数放到model当中

SSM学习之4:@RequestHeader,@CookieValue,传值方式_第7张图片
在这里插入图片描述

在这里插入图片描述
若不处理,则默认键名为类的首字母小写的格式,如user

在方法定义上使用 @ModelAttribute 注解,Spring MVC 在调用目标处理方法前,
会先逐个调用在方法级上标注了@ModelAttribute 的方法。
2,此方法在对应的RequestMapping映射方法执行之前自动调用
调用时也会将model传进去及增加内容(model.addAttribute)
若在里面设置了与requestMapping方法相同的键名,则会被覆盖掉,当然覆盖的话并不是全覆盖,若requestMapping方法未设置某一字段 值,而此方法又有则不会覆盖

当然在requestMapping中若不注解@ModelAttribute则就是真正的替换

你可能感兴趣的:(javaweb,Java,idea)