最近有一个需求是需要为某个模块的功能进行日志记录,如果修改每一个方法有些不合理,于是想到了过滤器。其中介绍几个过滤器访问action中数据的方法。
<package name="user" extends="base" namespace="/user">
<interceptors>
<interceptor name="logInterceptor" class="com.jungle.interceptor.LogInterceptor" />
</interceptors>
</package>
<action name="login" class="com.jungle.action.LoginAction">
<interceptor-ref name="logInterceptor"/>
<result name="success" type="dispatcher">/user/login_success.jsp</result>
</action>
public class LogInterceptor extends AbstractInterceptor implements Interceptor{
@Override
public String intercept(ActionInvocation invocation) throws Exception{
//访问Action之前...
String result = invocation.invoke();//其中result表示访问Action后返回的字符串。
//访问Action之后...
//actionName表示配置中的 name="login"
String actionName = invocation.getInvocationContext().getName();
//method表示访问Action中的哪个方法
String method = invocation.getProxy().getMethod();
}
}