其他分享
首页 > 其他分享> > 21.@CookieValue、@RequestHeader、@ModelAttribute

21.@CookieValue、@RequestHeader、@ModelAttribute

作者:互联网

目录

21.@CookieValue绑定Cookie数据值

// defaultValue定义默认值
public String test(@CookieValue(value="SESSIONID", defaultValue="") String sessionId) 

自动将SESSIONID的值绑定到字符串sessionId上,如果Cookie中没有sessionId时则默认为空

传入数据类型也可以是javax.servlet.http.Cookie类型
public String test2(@CookieValue(value="SESSIONID", defaultValue="") Cookie sessionId)

22.@RequestHeader绑定请求头数据

@RequestMapping(value="/header")  
public String test(
       // 配置将自动将请求头中的“User-Agent"值绑定到userAgent上
       @RequestHeader("User-Agent") String userAgent,
       // 将"Accept"的值绑定到accepts上
       @RequestHeader(value="Accept") String[] accepts){
    
}

23.@ModelAttribute

@ModelAttribute具有三个作用

1.绑定请求到命令对象:放在后台接口方法(控制层)的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程,而且自动暴露为模型数据用于视图页面展示时使用

2.暴露表单引用对象为模型数据:放在处理器的一般方法(非后台接口方法)上时,是为表单准备要展示的表单引用对象,如注册时需要选择所在的城市等,而且在执行后台接口方法之前,自动添加到模型对象中,用于视图页面展示时使用

3.暴露@RequestMapping方法返回值为模型数据:放在后台接口方法的返回值上时,处理方法的返回值为模型数据,用于视图页面的展示时使用

一、绑定请求参数到命令对象

如用户登录,我们需要捕获用户登录的请求参数(用户名、密码)并封装为用户对象,此时我们可以使用@ModelAttribute绑定多个请求参数到我们的命令对象。

public String test1(@ModelAttribute("user") UserModel user)

注解@ModelAttribute("user"),它的作用是将该绑定的命令对象以“user”为名称添加到模型对象中供视图页面展示使用。我们此时可以在视图页面使用${user.username}来获取绑定的命令对象的属性。

绑定请求参数到命令对象支持对象图导航式的绑定,如请求参数包含“?username=zhang&password=123&workInfo.city=bj”自动绑定到user中的workInfo属性的city属性中。

标签:21,对象,绑定,RequestHeader,ModelAttribute,user,请求,String
来源: https://www.cnblogs.com/leizia/p/15173549.html