这是我的web.xml
结构:
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>com.test.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/testServlet/*</url-pattern>
</servlet-mapping>
<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-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在Jsp中,我调用了servlet,如下所示。
<img src="${pageContext.request.contextPath}/testServlet?id=${someID}"
问题是我在下面使用时调用了servlet。当我在fliter映射中将*.jsp
更改为/*
时,它无法调用servlet。
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
但是当我使用*.jsp
时,使用struts2-dojo插件的日历不会出现在jsp中。
答案 0 :(得分:1)
您可以排除Struts 2处理它的特定请求路径
答案 1 :(得分:0)
您需要排除myServlet
映射,以便不会从struts的过滤器调度程序传递。
在你的struts.xml中添加:
<constant name="struts.action.excludePattern" value="/ServletToExcludeFromStruts*"/>
对于多个排除项,该值也以逗号分隔。
请参阅http://struts.apache.org/2.2.1/docs/webxml.html ..
this link提供的帮助。