@SessionAttribute
如果您需要访问全局管理(例如,通过过滤器,而非控制器)的、可能存在或不存在的现有会话属性,可以在方法参数上使用 @SessionAttribute
注解,如下例所示:
-
Java
-
Kotlin
@RequestMapping("/")
public String handle(@SessionAttribute User user) { (1)
// ...
}
1 | 使用 @SessionAttribute 注解。 |
@RequestMapping("/")
fun handle(@SessionAttribute user: User): String { (1)
// ...
}
1 | 使用 @SessionAttribute 注解。====== |
对于需要添加或移除会话属性的使用场景,请考虑将 org.springframework.web.context.request.WebRequest
或 jakarta.servlet.http.HttpSession
注入到控制器方法中。
对于在控制器工作流中将模型属性临时存储到会话的用例,请考虑使用 @SessionAttributes
,具体参见 @SessionAttributes
。