- 若希望在多个请求之间共用数据,则可以在控制器类上标注一个 @SessionAttributes,配置需要在session中存放的数据范围,Spring MVC将存放在model中对应的数据暂存到HttpSession 中。
- @SessionAttributes只能使用在类定义上。
参数 |
描述 |
name |
存储在会话或一些会话存储中的会话属性的名称 |
value |
name属性的别名 |
type |
存储在会话或一些会话存储中的会话属性的class |
- @SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中 例如:
- @SessionAttributes(types=User.class)会将model中所有类型为 User的属性添加到会话中。
- @SessionAttributes(value={“user1”, “user2”}) 会将model中属性名为user1和user2的属性添加到会话中。
- @SessionAttributes(types={User.class, Dept.class}) 会将model中所有类型为 User和Dept的属性添加到会话中。
- @SessionAttributes(value={“user1”,“user2”},types={Dept.class})会将model中属性名为user1和user2以及类型为Dept的属性添加到会话中。
示例
@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"; } } |