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

    1. @RequestMapping("/")
    2. public String handle(@SessionAttribute User user) {
    3. // ...
    4. }

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

    对于在会话中临时存储模型属性作为控制器工作流的一部分,可以考虑使用 @SessionAttributes中描述的 @SessionAttributes