在处理者弹簧3之前的功能

时间:2013-01-11 16:42:49

标签: java spring spring-mvc spring-security

我是Spring的新手,也是一般的框架......

我想在几乎每个处理程序中执行一些代码行。 例如,我将我的数据库会话和经过身份验证的用户保存为httpSession属性,对于我的大多数处理程序,我都有:

@RequestMapping(....)
public ModelAndView get(HttpSession ses){
   User u = ses.getAttribute("currUser");
   DBsession session = ses.getAttribute("DBsession");
   if( u==null ) new ModelAndView("redirect:login");
   ...
}

有没有办法让Spring为我这样做并将DBsession和经过身份验证的User对象直接作为处理程序参数?

@RequestMapping(....)
public ModelAndView get(User u, DBsession session ){
   ...
}

1 个答案:

答案 0 :(得分:1)

执行此操作的正确方法是使用自定义WebArgumentResolver,它会干净地扩展@RequestMapping带注释的处理程序方法以解析参数。我使用这种机制来处理干净地合并JPA实体并将它们传递给我的控制器。

您可以看到执行此操作herehere或Google的示例,有很多内容。