开发者社区> 问答> 正文

struts2如何配置才能使默认的拦截器不执行???:报错

就是我如何配置才能使得struts2中默认的拦截器不执行  获取说有些不执行  有一部分执行?

展开
收起
kun坤 2020-06-14 06:49:32 346 0
1 条回答
写回答
取消 提交回答
  • 你的意思是说有些action不拦截,有些action拦截对吗?如果是这样的话,你可以获取每个请求的action名字,根据action名字进行拦截和放行######回复 @Coffee_M : 这个我知道,我如果就想default-stack中有一部分拦截器执行呢 这个好像不好配 呵呵######回复 @Friends8811 : 可以再struts配置文件里配置属于你的拦截器,非缺省的拦截器######你有好的方法吗???######就是说struts2中不是有一个默认的拦截器栈,默认的拦截器栈中有很多的拦截器,默认的情况下 不是都得执行吗,现在我想有些用不到的就不执行了,这个可以在struts2的配置文件中直接配置吗?或者其他的方式?######struts.action.excludePattern######回复 @Friends8811 : 在Struts2中有个属性叫excludePattern,也就是用来配置Struts2不处理的路径######呵呵 能不能说详细一点啊?######struts2的默认拦截器是defaultStack,如果想跳过这个的话lz可以自定义一个拦截器栈,不包含这个默认拦截器,并设置<default-interceptor-ref name="那个自定义拦截器栈"/>。。就可以了。。。######好吧,谢谢啊,呵呵######回复 @Friends8811 : 比较奇怪。。我没尝试过。。你要么重写部分方法,然后将默认拦截器指向你重写后的拦截器######那如果我想 执行defaultStack中部分的拦截器呢,(有一部分不执行),这种情况 应该怎样处理啊?在配置文件中可以配置吗?######但是。。不包含默认拦截器的话,会接收不到传递过来的值的。。。好奇楼主是为了什么######你可以写一个拦截器继承 struts的拦截器,在doFilter方法中 根据RequestURI进行拦截和放行,web.xml 就配置这个拦截器做struts的拦截器

    public class YourStrutsFilter extends StrutsPrepareAndExecuteFilter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; String url = request.getRequestURI();

    	if (url.contains("XXXXXX")) {
    		// 使用自定义过滤器
    		chain.doFilter(req, res);
    	} else {
    		// 使用默认过滤器
    		super.doFilter(req, res, chain);
    	}
    }
    

    }



    2020-06-14 06:49:39
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载