PreResultListener拦截器是在action方法执行后,返回result之前执行的拦截器。

 

  1. package com.struts2.interceptor;  
  2. import com.opensymphony.xwork2.ActionSupport;  
  3. public class MyAction extends ActionSupport {  
  4.     /** 
  5.      *  
  6.      */  
  7.     private static final long serialVersionUID = 1L;  
  8.     @Override  
  9.     public String execute() throws Exception {  
  10.         System.out.println("execute方法");  
  11.         return SUCCESS ;  
  12.     }  
  13.   
  14. }  

 

 

一个简单例子,打印简单的一句话,加上一个简单的拦截器

 

 

  1. package com.struts2.interceptor;  
  2. import com.opensymphony.xwork2.ActionInvocation;  
  3. import com.opensymphony.xwork2.interceptor.AbstractInterceptor;  
  4. public class MyInterceptor extends AbstractInterceptor {  
  5.     /** 
  6.      *  
  7.      */  
  8.     private static final long serialVersionUID = 1L;  
  9.     @Override  
  10.     public String intercept(ActionInvocation invo) throws Exception {  
  11.           
  12.         invo.addPreResultListener(new PreInter()) ;  
  13.         System.out.println("拦截器前执行");  
  14.           
  15.         String result = invo.invoke() ;  
  16.           
  17.         System.out.println("拦截器后执行");  
  18.           
  19.         return result ;  
  20.     }  
  21. }  

 

 

加上preResult拦截器:

 

 

  1. package com.struts2.interceptor;  
  2. import com.opensymphony.xwork2.ActionInvocation;  
  3. public class PreInter implements PreResultListener {  
  4.     public void beforeResult(ActionInvocation arg0, String arg1) {  
  5.         System.out.println("结果集返回前执行");  
  6.     }  
  7. }  

 

 

运行结果:

 

拦截器前执行
execute方法
结果集返回前执行
拦截器后执行