0
现在我有一个方面:Spring MVC中使用AOP而404出错
@Around(value = "execution(* package.controller.*.*View(..)) && args(.., request)")
public ModelAndView getUserProfile(ProceedingJoinPoint proceedingJoinPoint, HttpServletRequest request) throws Throwable {
ModelAndView view = null;
view = (ModelAndView) proceedingJoinPoint.proceed();
HttpSession session = request.getSession();
boolean isLoggedIn = isLoggedIn(session);
if (isLoggedIn) {
User user = (User)session.getAttribute("user");
view.addObject("isLogin", isLoggedIn)
.addObject("profile", user);
}
return view;
}
正如你看到的,一旦*查看方法被调用,这方面将会议信息添加到ModelAndView对象。
但是,当发生HTTP 404错误时,此方面将不起作用。 但是我怎样才能在404错误页面上向ModelAndView对象添加额外的信息?
我已经创建了自己的错误页面,404错误:
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/views/errors/404.jsp</location>
</error-page>
非常感谢。
我不是一个Spring用户,而是一个AOP专家。你能指定什么“方面不起作用”的意思吗?该建议是否被触发?你看到一个例外吗?作为编辑请添加对您的问题有用的任何内容。 – kriegaex 2015-01-04 13:48:36
@ kriegaex当页面存在时,AOP正常工作(返回HTTP 200)。但是如果页面不存在,那么就没有控制器来处理请求。所以AOP将无法工作。 – 2015-01-04 15:49:33
为什么这么复杂的解决方案?为什么不简单使用'HandlerIntereptor'或(在这种情况下更好)'Filter'。添加到模型中的内容仅作为请求属性公开。 – 2015-01-04 18:20:47