修改在web.xml中的配置,将过滤的配置放到struts前面,如下
<!-- 配置用户登录过滤器 -->
<filter>
<filter-name>checkLoginFilter</filter-name>
<filter-class>com.alpha.web.filter.CheckLoginFilter</filter-class>
<init-param>
<description>检查失败后需要定向到的页面</description>
<param-name>redirectURL</param-name>
<param-value>Login/Login.jsp</param-value>
</init-param>
<init-param>
<description>不用检查用户的页面列表,用","分隔</description>
<param-name>notCheckURLList</param-name>
<param-value>Login.jsp,login.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>checkLoginFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>checkLoginFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- =========================================== -->
<!-- 配置Struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/action/*</url-pattern>
</filter-mapping>
可能原因是如果将struts配在前面,action都被struts的url-pattern配置拦截了,如有错误,望纠正