【发布时间】:2012-10-02 20:13:04
【问题描述】:
在调用任何 bean/控制器方法之前,我必须记录请求参数/表单数据。 我的应用程序是用 Spring Web Flow 编写的。
实现它的最佳方式是什么?
【问题讨论】:
-
请详细说明您的问题。你试过什么了?否则,您的问题可能看起来像投票/没有建设性。
标签: spring jakarta-ee spring-webflow
在调用任何 bean/控制器方法之前,我必须记录请求参数/表单数据。 我的应用程序是用 Spring Web Flow 编写的。
实现它的最佳方式是什么?
【问题讨论】:
标签: spring jakarta-ee spring-webflow
我认为 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 Filter 来做到这一点
【讨论】: