在用spring mvc做一个项目 我想在@Controller类的每个方法@RequestMapping前都调用我定义的一个方法 该怎么弄?
我现在是这么弄的 手动在方法的第一行调用我定义的那方法 这样 太麻烦 有没有更好的方法呢 一下是我的代码
[code="java"]
@Controller
public class ModuleAction extends BaseAction {
@Autowired
private ModuleMgr manager;
@RequestMapping("/systemMgr/module.action")
public String module(HttpServletRequest request, ModelMap model) {
initJSPDataBean(request, model);
Map<String, Object> paramMap = new HashMap<String, Object>();
int pageSize = CookieUtils.getPageSize(request);
int pageNo = SimplePage.cpn(getFormData("pageNo"));
Pagination pagination = manager.getPage(true, pageNo, pageSize,
"", Constants.SORTINDEX_ASC, paramMap);
setJumpPageInfo(pagination.getTotalCount(), pageSize, pageNo);
setJSPData("modules", pagination.getList());
return "systemMgr/module";
}
@RequestMapping("/systemMgr/moduleAdd.action")
public String addView(HttpServletRequest request, ModelMap model) {
initJSPDataBean(request, model);
return "systemMgr/moduleDetail";
}
}
[/code]
initJSPDataBean是我自定义的一个方法
在Controller中定义一个方法,并加上@ModelAttribute注解即可,被@ModelAttribute注解的方法(不要加@RequestMapping)在所有handler method之前调用
请继承org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个拦截类,然后放在
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception 里,它会在之前调用,
最后配置在applicationContext.xml里就可以了。
filter过滤器也可以考虑