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

Friends8811 发布于 2014/06/23 09:40
阅读 2K+
收藏 0
就是我如何配置才能使得struts2中默认的拦截器不执行  获取说有些不执行  有一部分执行?
加载中
0
Coffee_M
Coffee_M
你的意思是说有些action不拦截,有些action拦截对吗?如果是这样的话,你可以获取每个请求的action名字,根据action名字进行拦截和放行
F
Friends8811
回复 @Coffee_M : 这个我知道,我如果就想default-stack中有一部分拦截器执行呢 这个好像不好配 呵呵
Coffee_M
Coffee_M
回复 @Friends8811 : 可以再struts配置文件里配置属于你的拦截器,非缺省的拦截器
F
Friends8811
你有好的方法吗???
F
Friends8811
就是说struts2中不是有一个默认的拦截器栈,默认的拦截器栈中有很多的拦截器,默认的情况下 不是都得执行吗,现在我想有些用不到的就不执行了,这个可以在struts2的配置文件中直接配置吗?或者其他的方式?
0
alexgaoyh
alexgaoyh
struts.action.excludePattern
alexgaoyh
alexgaoyh
回复 @Friends8811 : 在Struts2中有个属性叫excludePattern,也就是用来配置Struts2不处理的路径
F
Friends8811
呵呵 能不能说详细一点啊?
0
小银
小银
struts2的默认拦截器是defaultStack,如果想跳过这个的话lz可以自定义一个拦截器栈,不包含这个默认拦截器,并设置<default-interceptor-ref name="那个自定义拦截器栈"/>。。就可以了。。。
F
Friends8811
好吧,谢谢啊,呵呵
小银
小银
回复 @Friends8811 : 比较奇怪。。我没尝试过。。你要么重写部分方法,然后将默认拦截器指向你重写后的拦截器
F
Friends8811
那如果我想 执行defaultStack中部分的拦截器呢,(有一部分不执行),这种情况 应该怎样处理啊?在配置文件中可以配置吗?
0
小银
小银
但是。。不包含默认拦截器的话,会接收不到传递过来的值的。。。好奇楼主是为了什么
0
BUG多野结衣
BUG多野结衣
你可以写一个拦截器继承 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);
		}
	}
}



返回顶部
顶部