5. Struts2的监听器
l Struts2的监听器,并没有多大用处,但也有必要知道 :
PreResultListener监听器,即在返回result之前监听action。这result即为每个action的业务方法的返回结果:所谓的结果返回之前,即将拦截器栈层层调用后,调用action的业务方法,其会返回一个字符串结果。此时这个监听器发挥作用。监听后再返回拦截器栈!监听器的使用要注册
自定义方法:
package edu.yzu.interceptor;
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);
}
}
在拦截器中注册监听器的方法
package edu.yzu.interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
@SuppressWarnings("serial")
public class ThirdInterceptor extends MethodFilterInterceptor {
@Override
protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
actionInvocation.addPreResultListener(new MyListener());
System.out.println("do before in ThreeInterceptor!");
String result= actionInvocation.invoke();
System.out.println("do after in ThreeInterceptor!");
return result;
}
}