筛选器映射Url模式*.action不起作用struts2

筛选器映射Url模式*.action不起作用struts2,struts2,web.xml,servlet-filters,url-pattern,action-mapping,Struts2,Web.xml,Servlet Filters,Url Pattern,Action Mapping,在struts2 web.xml应用程序中,我有过滤器和servlet web.xml ... <servlet> <servlet-name>SchServlet</servlet-name> <servlet-class>com.vk.translate.report.SchServlet</servlet-class> </servlet> <servlet-map

在struts2 web.xml应用程序中,我有过滤器和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>

...
。。。
SchServlet
com.vk.translate.report.SchServlet
SchServlet
/SchServlet
...
支柱
org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter
支柱
/*
...
在调用servlet时,它将该请求映射为操作,因为文件服务器Url模式为

<url-pattern>/*</url-pattern>
/*
我试图将其修改为

 <url-pattern>/*.action</url-pattern>
/*.action
它显示错误。您能帮助我如何调用servlet吗

<url-pattern>/SchServlet</url-pattern>
/SchServlet
在本例中,在调用servlet时,它显示为

没有为命名空间[/]和操作名称映射的操作 与上下文路径[/TranslateApp]关联的[SchServlet]

使用:

*。操作
这一个有效

在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>

支柱
org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter
支柱
*.行动
SchServlet
com.vk.translate.report.SchServlet
SchServlet
/SchServlet
参考:

请参阅。Get this error“Servlet失败,但无法找到Struts dispatcher。这通常是由于在没有关联筛选器的情况下使用Struts标记造成的。Struts标记仅在请求通过其Servlet筛选器时可用,该筛选器会初始化此标记所需的Struts dispatcher。-[unknown location]“您是否找到了类似于:
http://domain.com/something.action
?您点击的url必须与模式匹配,才能调用struts servlet。不,我无法登录应用程序。我在欢迎页面本身出现此错误
http://domain.com/welcome
<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>