如果你需要访问预先存在的会话属性,这些属性是全局管理的(也就是说,在控制器之外,例如,通过一个过滤器),可能存在也可能不存在,你可以在一个方法参数上使用 @SessionAttribute
注解,如下例所示:
@RequestMapping("/")
public String handle(@SessionAttribute User user) {
// ...
}
对于需要添加或删除会话属性的用例,考虑将 org.springframework.web.context.request.WebRequest
或 javax.servlet.http.HttpSession
注入控制器方法。
对于在会话中临时存储模型属性作为控制器工作流的一部分,可以考虑使用 @SessionAttributes
中描述的 @SessionAttributes
。