在调用任何 bean/控制器方法之前,我必须记录请求参数/表单数据。我的应用程序是用 Spring Web Flow 编写的。
实施它的最佳方法是什么?
在调用任何 bean/控制器方法之前,我必须记录请求参数/表单数据。我的应用程序是用 Spring Web Flow 编写的。
实施它的最佳方法是什么?
我认为 Spring AOP 可以帮助你。
定义一个选择所有控制器方法的切入点表达式并使用 @Before 建议来记录参数
例子:
@Before("execution(@controllers.package * *(..))")
public void logArguments(JoinPoint joinPoint) throws Throwable {
logger.debug("Entering method - Arguments : " + joinPoint.getArgs());
}
如果需要在到达控制器之前拦截每个请求,可以使用拦截器。您必须使用 HandlerInterceptorAdapter 扩展您的类。您可以覆盖它的 preHandle 方法以在每个请求到达控制器之前拦截它。您将在此方法中访问请求和响应对象以更改目标页面或 url。
您不需要 AOP/Aspectj,您可以使用Servlet 过滤器来做到这一点