博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2 ,web.xml中配置为/*.action,运行报错Invalid <url-pattern> /*.action in filter mapp
阅读量:7009 次
发布时间:2019-06-28

本文共 1201 字,大约阅读时间需要 4 分钟。

首先,修改成:

<filter-mapping>

  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>  

是可以的。

引起此错误的原因如下:

这个对filter的基础知识的理解:容器只认 全名匹配,路径匹配,扩展名匹配.

/*.action  又是路径匹配,有时扩展名匹配. 容器没办法区分

 

解决方法:写*.action

struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
*.action

 

如果改为这样的话,如果某些页面使用了struts2的标签的话,运行时是会报错,说是<url-pattern>*.action</url-pattern>配置的不对,那么采用以下某网友提供的方法:

由于你使用标签的时候访问的是*.jsp页面,访问的时候用到标签也要使用到struts2的包,所以你的web.xml文件里面的配置要这个样子

<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>
  <filter>
<filter-name>struts3</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>struts3</filter-name>
   <url-pattern>*.jsp</url-pattern>
</filter-mapping>
就是把*.jsp的请求也用struts2拦截掉,这样就不会出错了。这个问题不是标签问题,是struts2拦截器到底拦截什么请求的问题,

转载地址:http://ifttl.baihongyu.com/

你可能感兴趣的文章