Spring MVC - 会话属性 - 应该作为ModelAttribute在所有控制器中传递

时间:2013-07-26 13:07:41

标签: java spring session spring-mvc

Am @SessionAttributes用于维护SpringMVC。

说,@SessionAttribute("user")

目前我在所有控制器中将对象作为ModelAttribute传递,需要使用SessionObject“用户”,如

Class controller{

public ModelAndView method1(@ModelAttribute("user")){ }
public ModelAndView method2(@ModelAttribute("user")){ }
public ModelAndView method3(@ModelAttribute("user")){ }
public ModelAndView method4(@ModelAttribute("user")){ }

}

这是唯一的方法吗?

还有其他方法吗?这样我就可以拥有一个基本控制器,只需扩展基本控制器即可返回会话对象。

3 个答案:

答案 0 :(得分:0)

我在一些项目中使用的是:

String user = (String) hsr.getSession().getAttribute("user");

如果您正在寻找某种身份验证,我建议您开始使用Spring安全性或其他可根据角色或身份验证状态过滤掉页面的身份验证机制。

答案 1 :(得分:0)

不确定您的确切要求是什么,但是如何创建一个从会话中读取值的过滤器/拦截器并将其存储在稍后可由控制器访问的ThreadLocal中

答案 2 :(得分:0)

需要访问@SessionAttributes的控制器需要添加注释,如下所示。

@Controller
@SessionAttributes({"user"})
public class Controller {
   .............
}

HTH