1、创建MyListener.java 实现 PreResultLisener 接口
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.PreResultListener; public class MyListener implements PreResultListener { public void beforeResult(ActionInvocation invocation, String resultCode) {
System.out.println("result : "+resultCode);
} }
2、在拦截器中引入监听器
package com.test.interceptor; import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
import com.test.Listener.MyListener; public class MyInterceptorMet extends MethodFilterInterceptor { private static final long serialVersionUID = 8722841247439200544L; @Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
invocation.addPreResultListener(new MyListener());
System.out.println("my interceptor method");
// 执行 Action
String result = invocation.invoke();
return result;
}
}
3、执行顺序
validateDM is invoked —— 先进检验方法
my interceptor method —— 实例化监听器,并没有输出内容
DesignMethod is invoked —— 依然会执行Action方法
result : success —— 如果提交成功返回 success ,否则 返回input