我有过滤器和servlet
的web.xml
...
<servlet>
<servlet-name>SchServlet</servlet-name>
<servlet-class>com.vk.translate.report.SchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SchServlet</servlet-name>
<url-pattern>/SchServlet</url-pattern>
</servlet-mapping>
...
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!-- <init-param> <param-name>actionPackages</param-name> <param-value>com.mycompany.myapp.actions</param-v2alue>
</init-param> -->
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
在调用servlet时,它将该请求作为操作映射,因为Filer Url模式为
<url-pattern>/*</url-pattern>
我尝试将其修改为
<url-pattern>/*.action</url-pattern>
显示错误。请帮助我如何调用servlet。
<url-pattern>/SchServlet</url-pattern>
在这种情况下,在调用它显示为
的servlet时没有映射名称空间[/]和操作名称的Action [SchServlet]与上下文路径[/ TranslateApp]相关联。
答案 0 :(得分:2)
这个工作
struts.xml中的
<constant name="struts.action.excludePattern" value="/SchServlet"></constant>
web.xml中的
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>SchServlet</servlet-name>
<servlet-class>com.vk.translate.report.SchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SchServlet</servlet-name>
<url-pattern>/SchServlet</url-pattern>
</servlet-mapping>
答案 1 :(得分:0)
使用:
<url-pattern>*.action</url-pattern>