上一篇说的是action类拦截器,这里简单说一下方法拦截器。
1、新建方法拦截器类TheMethodInterceptor;
继承类MethodFilterInterceptor,该类其实是继承了AbstractInterceptor类,而AbstractInterceptor类又实现了Interceptor接口:
package com.xbb.interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class TheMethodInterceptor extends MethodFilterInterceptor {
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
System.out.println("方法拦截器");
return invocation.invoke();
}
}
2、配置struts.xml:
-----2.1声明拦截器:
<interceptor name="theMethodInterceptor" class="com.xbb.interceptor.TheMethodInterceptor">
</interceptor>
-----2.2使用拦截器:
<action name="docommit" class="com.xbb.action.DoCommit">
<result name="success">/result.jsp</result>
<result name="input">/commit.jsp</result>
<interceptor-ref name="firstInterceptor"></interceptor-ref>
<interceptor-ref name="theMethodInterceptor">
<param name="includeMethods">execute</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
方法拦截器的使用带有两个参数,一个includeMethods,其值表示拦截哪个方法;
还有一个参数excludeMethods,其值表示遇到这个方法就不启用拦截器。
ok。