@SessionAttributes
注解可以指定将Model
中的某些属性转存一份到HttpSession
对象中。@CookieValue
注解用于将请求的Cookies
数据映射到功能处理方法的参数上。
@SessionAttributes
@SessionAttributes
注解将Model的属性从默认的request
域拷贝一份到session
域上,可以多个属性。
该注解只能声明在类上,不能声明在方法上。
- 属性:
names
, String[]类型,Model
中属性的名称,即存储在HttpSession
当中的属性名称。 - 属性:
value
, String[]类型,names
属性的别名。 - 属性:
types
, Class<?>[], 说明Model
中属性的类型(class 对象)。@SessionAttributes(types= {SysUser.class, String.class}, value= {"sysUser","userName"})
Controller代码:
@Controller
@SessionAttributes(value = "userName")
@RequestMapping("/user")
public class SessionController {
@RequestMapping("/session")
public String getSessionAttributes(Model model) {
SysUser sysUser = new SysUser()
.setAccount("admin")
.setPassword("11223344");
model.addAttribute("sysUser", sysUser);
model.addAttribute("userName", "root");
return "session";
}
}
JSP代码:
<body>
<h3>requestScope获取用户:</h3>
<p>账号:${requestScope.sysUser.account}</p>
<p>密码:${requestScope.sysUser.password}</p>
<p>账号:${requestScope.userName}</p>
<hr>
<h3>sessionScope获取用户:</h3>
<p>账号:${sessionScope.userName}</p>
<p>账号:${sessionScope.sysUser.account}</p>
<p>密码:${sessionScope.sysUser.password}</p>
</body>
@CookieValue
@CookieValue
可以很方便地获取到请求的JSESSIONID
。
支持的属性有:
- 属性:
name
, String 类型, 指定请求头绑定的名称。 - 属性:
value
, String 类型, name 属性的别名。 - 属性:
required
, boolean 类型, 参数是否必须绑定。 - 属性:
defaultValue
, String 类型, 如果没有传递参数,则使用默认值。
//将session绑定到参考 sessionId 上
@Controller
@RequestMapping("/sys")
public class SysUserController {
@RequestMapping("/getSession")
public void getSession(
@CookieValue(value="JSESSIONID", defaultValue="") String sessionId) {
System.out.println(sessionId);
}
}
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载