<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Image</servlet-name>
<servlet-class>zhou.Image</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>Image</servlet-name>
<url-pattern>/Image</url-pattern>
</servlet-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>我在web.xml文件中同时配置的filter和servlet,我的项目中有一个Image(这是一个servlet),但是我访问Image时,
提示找不到对应的action.我觉得Image是被filter给拦截了,再到对应的struts.xml文件中搜索Image,那肯定是找不到的。我纠结了很长时间,是不是那个<url-pattern>/*</url-pattern>的问题!
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Image</servlet-name>
<servlet-class>zhou.Image</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>Image</servlet-name>
<url-pattern>/Image</url-pattern>
</servlet-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>我在web.xml文件中同时配置的filter和servlet,我的项目中有一个Image(这是一个servlet),但是我访问Image时,
提示找不到对应的action.我觉得Image是被filter给拦截了,再到对应的struts.xml文件中搜索Image,那肯定是找不到的。我纠结了很长时间,是不是那个<url-pattern>/*</url-pattern>的问题!
是的
你可以换成<url-pattern>/*.action</url-pattern>
struts.action.extension=action,,
这个常量需要改变一下吗?
这样的话,
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>这里,你就不能用/*了,要改成*.action
这样,你访问Servlet的时候,struts2就不会给你栏截了
严重: Parse error in application web.xml file at jndi:/localhost/fileupload/WEB-INF/web.xml
java.lang.IllegalArgumentException: Invalid <url-pattern> /*.action in filter mapping
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2808)
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2834)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1143)这是启动tomcat是的异常!
<filter-name>struts2</filter-name>
<url-pattern>/*.action</url-pattern>你是像这样写的吗?如果是,那就错了,把/去掉,写*.action