我是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 ){
...
}
答案 0 :(得分:1)
执行此操作的正确方法是使用自定义WebArgumentResolver,它会干净地扩展@RequestMapping
带注释的处理程序方法以解析参数。我使用这种机制来处理干净地合并JPA实体并将它们传递给我的控制器。