@SessionAttribute

如果你需要访问全局管理的(即在控制器之外——例如,通过过滤器)且可能存在也可能不存在的预先存在的会话属性,你可以在方法参数上使用 @SessionAttribute 注解,如下例所示:

Java
@RequestMapping("/")
public String handle(@SessionAttribute User user) { [id="CO1-1"]1
	// ...
}
<1>  使用 `@SessionAttribute` 注解。
Kotlin
@RequestMapping("/")
fun handle(@SessionAttribute user: User): String { [id="CO2-1"][id="CO1-1"][id="CO2-1"](1)
	// ...
}
<1>  使用 `@SessionAttribute` 注解。======

对于需要添加或删除会话属性的用例,请考虑将 org.springframework.web.context.request.WebRequestjakarta.servlet.http.HttpSession 注入到控制器方法中。

对于在控制器工作流中将模型属性临时存储到会话中,请考虑使用 @SessionAttributes,如 @SessionAttributes 中所述。