使用struts2自定义拦截器,要引入defaultStack

使用自定义的拦截器配置在struts配置文件的action中,还要引入defaultStack,否则使用了modelDriven的formBean将不能获取到form表单中字段的值。

action:

  1. public class LoginAction implements Action, ModelDriven<UserForm> {  
  2.     private UserForm userForm=new UserForm();  
  3.     private IUserBO iUserBO;  
  4.   
  5.     public String login() {  
  6.         User user=iUserBO.getUser(userForm.getUsername(), userForm.getPassword());  
  7.         if (user!=null) {  
  8.             return SUCCESS;  
  9.         } else {  
  10.             return ERROR;  
  11.         }  
  12.   
  13.     }  
  14.   
  15.   
  16.     public String execute() throws Exception {  
  17.         // TODO Auto-generated method stub  
  18.         return SUCCESS;  
  19.     }  
  20.   
  21.     public UserForm getModel() {  
  22.         return userForm;  
  23.     }  
  24.   
  25.     public IUserBO getiUserBO() {  
  26.         return iUserBO;  
  27.     }  
  28.   
  29.     public void setiUserBO(IUserBO iUserBO) {  
  30.         this.iUserBO = iUserBO;  
  31.     }  
  32.   
  33. }  

拦截器:

 

view plain copy to clipboard print ?
  1. public class FilterTest extends MethodFilterInterceptor {  
  2.     Logger logger = Logger.getLogger(this.getClass());  
  3.   
  4.     @Override  
  5.     protected String doIntercept(ActionInvocation invocation) throws Exception {  
  6.         // TODO Auto-generated method stub  
  7.         logger.info("==========action执行前插入代码===============");  
  8.         String s=invocation.invoke();  
  9.         logger.info("==========invocation.invoke():"+s);  
  10.         logger.info("==========action执行后插入代码===============");  
  11.         return s;  
  12.         }  
  13.   
  14. }  

struts配置文件:

view plain copy to clipboard print ?
  1. <struts>  
  2.   
  3.     <package name="struts" extends="struts-default" namespace="/test">  
  4.      <interceptors>  
  5.         <interceptor name="testInterceptor" class="filterBase.FilterTest">  
  6.         </interceptor>  
  7.      </interceptors>  
  8.         <action name="loginAction" class="LoginAction" method="login">  
  9.             <result name="success">/success.jsp</result>  
  10.             <result name="error">/error.jsp</result>  
  11.             <interceptor-ref name="defaultStack"/>  
  12. <!-- 通过配置参数excludeMethods,设置不被拦截的方法,excludeMethods被拦截的方法 -->    
  13.             <interceptor-ref name="testInterceptor">  
  14.                 <param name="includeMethods">login</param>   
  15.             </interceptor-ref>  
  16.         </action>  
  17.     </package>  
  18. </struts>  

你可能感兴趣的:(struts)