0

struts2 web.xml アプリケーションには、フィルターとサーブレットがあります

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>

...

サーブレットを呼び出している間、Filer Url パターンが

<url-pattern>/*</url-pattern>

私はそれを次のように変更しようとします

 <url-pattern>/*.action</url-pattern>

エラーが表示されます。サーブレットを呼び出す方法を教えてください。

<url-pattern>/SchServlet</url-pattern>

この場合、サーブレットの呼び出し中に次のように表示されます

名前空間 [/] とコンテキスト パス [/TranslateApp] に関連付けられたアクション名 [SchServlet] にマップされたアクションはありません。

4

2 に答える 2

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>

参考: Struts2の除外パターンが機能しない

于 2014-03-20T13:38:56.687 に答える
0

使用する:

<url-pattern>*.action</url-pattern>
于 2014-03-17T09:11:58.940 に答える