excludeMethods表示排除指定的方法,即不对标记为excludeMethods的方法进行拦截;
includeMethods表示包含指定的方法,即对标记为includeMethods的方法进行拦截;
在struts.xml中关于excludeMethods和includeMethods有两种实现方式,一种相当于全局,
即<interceptors>
另一种相当于局部:
<interceptor-ref name="method">
</interceptor-ref>
若全局中的param定义为excludeMethods同样局部中的param也定义为excludeMethods,
则局部中的param生效,全局中的param无效,即被局部中的param覆盖。
同时如果要使用这个,则拦截器必须实现·MethodFilterInterceptor
<span style="font-size:18px;">package ray.interceptors;
import ray.listener.PreResultListener;
import ray.tools.Consts;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class LoginInterceptor extends MethodFilterInterceptor {
private static final long serialVersionUID = 1L;
private ActionContext context = null;
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
invocation.addPreResultListener(new PreResultListener());
this.context = invocation.getInvocationContext();
Object object = context.getSession().get(Consts.USERSESSION);
if(object == null){
return Action.LOGIN;
} else {
return invocation.invoke();
}
}
}
</span>