相信如果找到我这里的时候应该已经看到了那个分析struts.action.excludePattern工作流程的文章 那我再说一次
struts2 默认的拦截器是StrutsPrepareAndExecuteFilter
执行过滤的是doFilter方法
圈住的区域是请求与白名单进行比对的方法。
跳到它的方法处可以看到
和我们设置的正则比对的是getUri方法
而这个方法会优先返回javax.servlet.include.servlet_path和ServletPath。然后返回真正的uri从项目名之后截取的uri。
但是我们看log知道的错误是直接getRequestURI();
所以这里的问题一般都在于
javax.servlet.include.servlet_path
ServletPath
和 你的正则表达式加上了项目名。