标签:style blog http io color 使用 sp for on
作者:禅楼望月
在前面我们学到了在特定的Action中配置结果监听器,在Action完成控制处理之后,struts2转入实际的物理视图之前被回调。但是这种方式的缺点是,结果的监听器不能被复用。根据设计模式的里面,哪里变化就封装哪里,那么我们就将这个监听器封装起来。封装到哪里呢?由于在struts2中我们可以在任何需要的Action中配置拦截器,这样我们便可以将监听器封装到一个拦截器中,哪里需要,只需要配置一下即可。
import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; import com.opensymphony.xwork2.interceptor.PreResultListener; public class BeforeResultInterceptor extends AbstractInterceptor { private static final long serialVersionUID = 8804592842717460916L; @Override public String intercept(ActionInvocation inoInvocation) throws Exception { inoInvocation.addPreResultListener(new PreResultListener() { @Override public void beforeResult(ActionInvocation invocation, String resultCode) { System.out.println("返回的逻辑视图为:"+resultCode); } }); return "success"; } }
上面代码将一个拦截器注册进一个拦截器中,使用的时候只需要将这个拦截器配置给Action即可。配置和配置普通的拦截器一样。
注意:在监听器的beforeResult(ActionInvocation invocation, String resultCode)方法中也有一个ActionInvocation,但是在这里千万不要调用该参数的invoke()方法。否则会死循环下去。
欢迎转载,请注明出处。
标签:style blog http io color 使用 sp for on
原文地址:http://www.cnblogs.com/yaoyinglong/p/Struts2监听Action结果的监听器.html