@SessionAttribute
时间: 2024-01-15 20:05:53 浏览: 31
@SessionAttribute 是一个注解,用于将特定属性添加到会话作用域中。它可以应用在控制器的方法参数上或者类的成员变量上。
当应用程序使用会话作用域的时候,可以使用 @SessionAttribute 注解来将某个属性值保存在会话中,以便在不同请求之间共享数据。
例如,假设在控制器中有一个名为 "user" 的属性,它是一个用户对象。可以使用 @SessionAttribute 注解将这个属性值保存在会话中:
```java
@Controller
@SessionAttributes("user")
public class UserController {
@ModelAttribute("user")
public User getUser() {
// 从数据库或其他地方获取用户对象
User user = userService.getUser();
return user;
}
@GetMapping("/user")
public String getUserInfo(@ModelAttribute("user") User user) {
// 使用用户对象进行业务逻辑处理
// ...
return "user-info";
}
}
```
在上述示例中,@SessionAttributes("user") 注解指定了要将 "user" 属性保存在会话中。在 getUserInfo() 方法中,可以通过 @ModelAttribute("user") 来获取当前会话中的用户对象。
这样就可以在不同的请求之间共享用户对象,当会话结束时,会自动将 "user" 属性从会话中移除。