此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【aqszhuaihuai】截止到2008-07-19 09:06:25的历史汇总数据(不包括此帖):
发帖的总数量:36                       发帖的总分数:710                      每贴平均分数:19                       
回帖的总数量:45                       得分贴总数量:14                       回帖的得分率:31%                      
结贴的总数量:26                       结贴的总分数:480                      
无满意结贴数:7                        无满意结贴分:160                      
未结的帖子数:10                       未结的总分数:230                      
结贴的百分比:72.22 %               结分的百分比:67.61 %                  
无满意结贴率:26.92 %               无满意结分率:33.33 %                  
楼主加油

解决方案 »

  1.   

    1.Struts2提供MethodFilterInterceptor类,该类是AbstractInerceptor的子类,可以实现对Action方法的拦截.
    2.MethodFilterInterceptor中有两个方法
     setExcludeMethods:排除需要过滤的方法
      setIncludeMethods:设置需要过滤的方法
      如果一个方法同时在excludeMethods和includeMethods中出现,则会被拦截
    3.实现拦截器   package com.interceptor;   
       
    import com.opensymphony.xwork2.ActionInvocation;   
    import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;   
       
    public class LogInterceptor extends MethodFilterInterceptor {   
       
        private static final long serialVersionUID = 1L;   
       
        private String name;   
           
        @Override  
        protected String doIntercept(ActionInvocation actionInvocation) throws Exception {   
           
            System.out.println("拦截器名称:" + name);   
            System.out.println("action:" + actionInvocation.getAction());   
               
            return actionInvocation.invoke();   
        }   
       
        public String getName() {   
            return name;   
        }   
       
        public void setName(String name) {   
            this.name = name;   
        }   
    }   
      
    actionpackage com;
    public class ManageAction {
        public String execute(){   
            System.out.println("execute....");
            return "succee";   
        }   
      
        public String search(){
            System.out.println("search....");   
            return "succee";   
        }   
        public String add(){   
            System.out.println("add....");   
            return "succee";   
        }   
    }struts.xml<action name="manage" class="com.ManageAction">
                <interceptor-ref name="log"><BR>  
                    <param name="name">日志拦截</param>
                    <!-- 设置需要拦截的方法,指定多个方法以逗号隔开 -->  
      
                    <param name="includeMethods">execute,add</param>
                    <!-- 设置不需要拦截的方法,execute在includeMethods中同时存在,execute会被拦截 -->
                    <param name="excludeMethods">search,execute</param>  
                </interceptor-ref>
                <result name="succee">/welcome.jsp</result>  
    </action>