springmvc基础知识(19):@SessionAttributes注解的使⽤
若希望在多个请求之间共⽤数据,则可以在控制器类上标注⼀个 @SessionAttributes,配置需要在session中存放的数据范围,Spring MVC将存放在model中对应的数据暂存到
HttpSession 中。
@SessionAttributes只能使⽤在类定义上。
@SessionAttributes 除了可以通过属性名指定需要放到会 话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中 例如:
1. @SessionAttributes(types=User.class)会将model中所有类型为 User的属性添加到会话中。
2. @SessionAttributes(value={“user1”, “user2”}) 会将model中属性名为user1和user2的属性添加到会话中。
3. @SessionAttributes(types={User.class, Dept.class}) 会将model中所有类型为 User和Dept的属性添加到会话中。
4. @SessionAttributes(value={“user1”,“user2”},types={Dept.class})会将model中属性名为user1和user2以及类型为Dept的
属性添加到会话中。
value和type之间是并集关系
springmvc的注解有哪些
举个例⼦说明⼀下
处理器
@SessionAttributes(value={"user"})
@Controller
public class UserController {
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Model model){
User user = new User("jack","123456");
model.addAttribute("user", user);
return"success";
}
}
处理⽅法testSessionAttributes在model中存放了属性名为user的数据,
处理结束后,model⾥的数据会被放⼊到request中,页⾯通过request域可以获取到。
⽽这⾥使⽤了@SessionAttributes(value={“user”})将model中属性名为user的数据copy⼀份进了session域中.
在返回的页⾯success.jsp中
<br>user requestScope:${requestScope.user}
<br>
<br>user sessionScope:${sessionScope.user}
处理结束后的返回页⾯可以在request和session域中获取到属性名为user的数据
需要强调的是@SessionAttributes的value和type之间是并集关系

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。