若希望在多个请求之间共用某个模型属性数据,则可以在控制器类上标注一个@SessionAttributes,
Spring MVC 将在模型中对应的属性暂存到 HttpSession 中。
@SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,
还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中
@SessionAttributes(types=User.class) 会将隐含模型中所有类型 –
为 User.class 的属性添加到会话中:
@SessionAttributes(value={“user1”, “user2”})
@SessionAttributes(types={User.class, Dept.class})
@SessionAttributes(value={“user1”, “user2”}, types={Dept.class})
eg:
@SessionAttributes(value={"user"},types={String.class})
@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
private static final String SUCCESS = "success";
/*
* @SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,(实际上使用 的是value属性值)
* 还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(实际上使用的是types属性值)
* 注意:这个注解只能放在类的上面,而不能修饰方法
*/
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Map<String, Object> map){
User user = new User("tom","123456","asdfasd",15);
map.put("user", user);
map.put("school", "jiangsuligong");
return SUCCESS;
}
}