struts2的拦截器是在访问action的某个方法,之前或之后进行拦截,是一种AOP实现,即实现了可拔插管理
实现:
需要实现interceptor,提供了以下几种方法
void destroy(); //结束时执行
void init(); //开始时执行
String intercept(ActionInvocation invocation) throws Exception; //拦截的处理
接口struts2提供了几个默认实现的类
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; //提供了includeMethod和excludeMetod两个字段属性,可以在配置的时候使用param添加字段,
com.opensymphony.xwork2.interceptor.AbstractInterceptor; //提供了对init()和destroy()方法的空实现
interceptor方法的实现
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
invocation.getAction(); //获得Action对象强制转型为Action类对其内的数据进行处理
String s=invocation.invoke(); //调用下个拦截器或者执行action
return s; //返回最终result
}
在struts.xml中加入:
<interceptors> <interceptor name="名" class="包类"></interceptor> </interceptors>
然后在你使用的Action中加入interceptor引用
<action name="">
<interceptor-ref name="">
<param name=""></param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>//必须配置默认的拦截器
</action>