struts2 的拦截器的应用

来源:互联网 发布:苏联发展数据大全 编辑:程序博客网 时间:2024/06/16 14:38

 

和webwork得差不多,首先写拦截器配置文件:xwork-losbgm-default.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN"
    "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"
>
<xwork>
    
<include file="struts-default.xml" />
    
<package name="xwork-losbgm-default" extends="struts-default">
        
<interceptors>
            
<interceptor name="employeeAccessInterceptor"
                class
="tool.UserAccessInterceptor">
            
</interceptor>
            
<interceptor-stack name="losbgmStack">
                
<interceptor-ref name="employeeAccessInterceptor"></interceptor-ref>
                
<interceptor-ref name="defaultStack" />
            
</interceptor-stack>
        
</interceptors>
        
<default-interceptor-ref name="losbgmStack"></default-interceptor-ref>
        
<global-results>
            
<result name="error">/error.jsp</result>
            
<result name="index">/index.jsp</result>
        
</global-results>
    
</package>
</xwork>

 在写一个拦截器类:UserAccessInterceptor.java

//Source file: F:/java/Oil/src/com/xj/tools/UserAccessInterceptor.java

package tool;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class UserAccessInterceptor extends AbstractInterceptor {

    @Override
    
public void destroy() {
        
// TODO Auto-generated method stub
        super.destroy();
    }


    @Override
    
public void init() {
        
// TODO Auto-generated method stub
        super.init();
    }


    @Override
    
public String intercept(ActionInvocation arg0) throws Exception {
        
// TODO Auto-generated method stub
        
        
return "error";
    }



}

再要实现拦截器的配置文件中先倒入文件再继承包就可以了:


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd"
>

<struts>
    
<include file="struts-default.xml"></include>
    
<include file="xwork-losbgm-default.xml"></include>
    
<package name="login" namespace="/" extends="xwork-losbgm-default">
        
<action name="login" class="action.LoginAction">
            
<result name="success">/index.jsp</result>
        
</action>
        
<action name="main">
            
<result>/main.jsp</result>
        
</action>
        
<action name="Register">
            
<result>/index.jsp</result>
        
</action>
        
<action name="*">
            
<result>/{1}.jsp</result>
        
</action>
    
</package>
</struts>

 ===================================================================================

struts2中的拦截器如何配置在action前后都执行呢?

 

public String intercept(ActionInvocation invocation) {   
  
//do some job before invocation   
  
//...   
  String result = invocation.invoke();   
  
//do some job after invocation   
  
//...   
  return result;   
}
   

==============================================================================