说明:当运行index.jsp时,点击“send”时MyInterceptor3没有起作用,也就是没有输出“my interceptor3”。
请各位高手帮忙!!谢谢!!
1.index.jsp <s:form action="convert">
<s:textfield name="username" label="username"></s:textfield>
<s:textfield name="date" label="birthday"></s:textfield>
<s:submit label="send"></s:submit>
</s:form>2.struts.xml <interceptors>
    <interceptor name="Interceptor3" class="intercepter.MyInterceptor3">
    </interceptor>
 </interceptors>

<action name="convert" class="convert.Convert">
  <result name="success">/convert/convertsuccess.jsp</result>
  <result name="input">/convert/index.jsp</result>
  <interceptor-ref name="defaultStack"></interceptor-ref>
  
  <interceptor-ref name="Interceptor3">
      <param name="excludeMethods">test,execute</param>
      <param name="includeMethods">execute</param>
  </interceptor-ref>
  
</action>3.MyInterceptor3.javapublic class MyInterceptor3 extends MethodFilterInterceptor {
protected String doIntercept(ActionInvocation invocation) throws Exception {
System.out.println("my interceptor3");
String result = invocation.invoke();
return result;
}
}

解决方案 »

  1.   

    MethodFilterInterceptor 
    是你只有掉对应方法的时候才拦截吧
    你有掉那些方法没呢
      

  2.   

    我将其改成了以下方式:<action name="convert" class="convert.Convert" method="test">
      <result name="success">/convert/convertsuccess.jsp</result>
      <result name="input">/convert/index.jsp</result>
      <interceptor-ref name="defaultStack"></interceptor-ref>
      <interceptor-ref name="Interceptor3">
           <param name="excludeMethods">execute</param>
           <param name="includeMethods">test</param>
      </interceptor-ref>
    </action>但是还是不可行哦。
      

  3.   

    设置反啦吧excludeMethods:拦截被排除的方法。
    includeMethods:拦截被包含的方法。
      

  4.   

    使用拦截器,必须在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack看看你的struts.xml 有无加上,