Java 从Struts2中的堆栈中删除拦截器

Java 从Struts2中的堆栈中删除拦截器,java,struts2,struts2-interceptors,interceptorstack,Java,Struts2,Struts2 Interceptors,Interceptorstack,在struts.xml中,我将tokenSession拦截器包含到我的拦截器堆栈中,以验证每个请求的令牌。不幸的是,对于AJAX请求,同样的方法并不适用。当它执行actionInvocation.invoke()时,我得到了无效的.token响应 因此,我想停止(单独)为AJAX请求执行tokenSession拦截器。我有一个自定义拦截器(日志记录),它在tokenSession拦截器之前被调用。是否可以根据请求类型(如果是AJAX请求)从日志拦截器中的堆栈中删除tokenSession拦截器?

struts.xml
中,我将
tokenSession
拦截器包含到我的拦截器堆栈中,以验证每个请求的令牌。不幸的是,对于AJAX请求,同样的方法并不适用。当它执行
actionInvocation.invoke()
时,我得到了
无效的.token
响应


因此,我想停止(单独)为AJAX请求执行tokenSession拦截器。我有一个自定义拦截器(日志记录),它在
tokenSession
拦截器之前被调用。是否可以根据请求类型(如果是AJAX请求)从日志拦截器中的堆栈中删除
tokenSession
拦截器?

令牌拦截器扩展了
MethodFilterInterceptor
,这意味着您可以根据方法名称排除拦截器的执行

在拦截器堆栈中,如下所示进行配置:


您的\u ajax\u方法\u逗号\u分隔

另一种解决方案是为AJAX操作使用不同的拦截器堆栈。

为操作使用不同的拦截器堆栈,或为不同的包使用不同的拦截器堆栈,并将所有操作分组到正确的包中