【问题标题】:Delete interceptor from stack in Struts2从 Struts2 的堆栈中删除拦截器
【发布时间】:2012-12-12 10:26:13
【问题描述】:

struts.xml 中,我已将tokenSession 拦截器包含到我的拦截器堆栈中,以验证每个请求的令牌。不幸的是,对于 AJAX 请求,同样的效果并不好。我在执行actionInvocation.invoke() 时收到了invalid.token 响应。

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

【问题讨论】:

    标签: java struts2 struts2-interceptors interceptorstack


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      在你的拦截器堆栈中像这样配置它:

      <interceptor-ref name="token">
         <param name="excludeMethods">your_ajax_methods_comma_separated</param>
      </interceptor-ref>
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-31
        • 1970-01-01
        相关资源
        最近更新 更多