0

在调用任何 bean/控制器方法之前,我必须记录请求参数/表单数据。我的应用程序是用 Spring Web Flow 编写的。

实施它的最佳方法是什么?

4

3 回答 3

0

我认为 Spring AOP 可以帮助你。

定义一个选择所有控制器方法的切入点表达式并使用 @Before 建议来记录参数

例子:

@Before("execution(@controllers.package * *(..))")
public void logArguments(JoinPoint joinPoint) throws Throwable {
    logger.debug("Entering method - Arguments : " + joinPoint.getArgs());
}
于 2012-09-28T16:01:59.017 回答
0

如果需要在到达控制器之前拦截每个请求,可以使用拦截器。您必须使用 HandlerInterceptorAdapter 扩展您的类。您可以覆盖它的 preHandle 方法以在每个请求到达控制器之前拦截它。您将在此方法中访问请求和响应对象以更改目标页面或 url。

于 2012-10-02T12:13:04.053 回答
-1

您不需要 AOP/Aspectj,您可以使用Servlet 过滤器来做到这一点

于 2012-09-28T11:54:56.780 回答