1.若希望在多个请求之间共用某个模型属性数据,则可以在控制器类上标注一个 @SessionAttributes,
Spring MVC 将在模型中对应的属性暂存到 HttpSession 中。
2.@SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些
模型属性需要放到会话中
3.注意@SessionAttributes注解只能添加到类上。
4.1 jsp请求
<a href="springMVC/testSessionAttributes">testSessionAttributes</a>
4.2 添加@SessionAttributes注解,目标方法。(关于@SessionAttributes注解的参数问题,value参数所代表的意思是,如果
在返回的模型数据中有"user"这个属性的话,就把“user”这个属性键对应的值
放入session域对象中。types:如果 在返回的模型数据中有"User.class"这个
类型的话,就把该类型对应的值放入session域对象中)
@SessionAttributes(value="user",types=User.class)
@Controller
@RequestMapping("/springMVC")
public class SpringMVCTest {
private static final String SUCCESS = "success";
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Map<String,Object> map){
User user = new User("Tom", "555", "ggg@com", 15);
map.put("user", user);
return SUCCESS;
}
}
4.3 @SessionAttributes注解使用了该注解后,会把模型数据放到request域对象的同时,放入session域对象中。
<body>
request user:${requestScope.user}
<br>
sessioon user:${sessionScope.user}
</body>