这是我的问题
我想在任何spring控制器调用之前拦截请求,检查并修改请求URI。在此之后,它必须调用另一个SPRING控制器方法。
我使用了mvc:interceptors,但是我想用注解来配置它,这就是为什么我需要一个@Aspect的解决方案。一切都正常,但控制器调用了两次,分别用于原始请求和新请求。使用拦截器,我返回了false,但它取消了它,我该如何处理方面类?谢谢
下面是我的代码:
@Component
@Aspect
public class TestAspect {
@Before("execution(* mycontroller.*(..)) &&" + "args(request,response)")
public void interceptUrl(HttpServletRequest request, HttpServletResponse response) {
System.out.println("@Aspect is running!");
System.out.println(request.getRequestURI());
if (request.getAttribute("client") == null) {
request.setAttribute("client", "test");
request.getRequestDispatcher("/newpath/contact").forward(request, response);
}
}
}发布于 2012-08-25 00:42:57
你应该考虑@Around建议而不是@Before。在这种情况下,您可以简单地不执行原始请求链。
https://stackoverflow.com/questions/12113394
复制相似问题