1.默认拦截器位置;struts2-core——>struts-default.xml
2.自定义拦截器
继承MethodFilterInterceptor类(xwork下)
重写protected String doIntercept(ActionInvocation actionInvocation)方法,写拦截器的逻辑;
若要执行action方法:return actionInvocation.invoke();
若要返回某个页面,return到配置路径中:return result中的name(注意是该action对应的result)
3.注册拦截器
在要拦截的action的所在package下声明拦截器
<interceptors>
<interceptor name="demo1" class="InterceptorDemo"></interceptor>
</interceptors>
使用拦截器(package下所有action都适用,写在package)
当使用自定义拦截器时默认拦截器将不会执行,因此要先使用默认拦截器(放在自定义前先执行)
<interceptors>
<interceptor-stack name="all">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="demo1"></interceptor-ref>
</interceptor-stack>
</interceptors>
使用拦截器(仅一个action适用,写在action)
<action name="ognl1" class="Demo1Action" method="execute">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="demo1"></interceptor-ref>
</action>
拦截器默认拦截action中的所有方法
不拦截某些方法
<interceptor-ref name="demo1">
<param name="excludeMethods">add</param>
</interceptor-ref>
**name为固定值,不要写错,tomcat不执行,不报错,难查**