您的位置:首页 > 编程语言 > Java开发

Struts2的Interceptor中使用includeMethods 和 excludeMethods

2016-04-20 19:06 423 查看
excludeMethods表示排除指定的方法,即不对标记为excludeMethods的方法进行拦截;

includeMethods表示包含指定的方法,即对标记为includeMethods的方法进行拦截;

在struts.xml中关于excludeMethods和includeMethods有两种实现方式,一种相当于全局,

即<interceptors>

<interceptor name="method" class="com.yxl.interceptor.MethodInterceptor">

<param name="includeMethods">method1,method2</param>

</interceptor>

</interceptors>

另一种相当于局部:

<interceptor-ref name="method">

<param name="excludeMethods">method1,method2</param>

</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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: