私は struts 2 を使用していますが、最近 と を構成web.xml
して、URL からstruts.xml
の削除を変更しました。.action
幸いなことに、重大な問題を除いて、すべてが正常に機能しています。リクエストの一部を他のサーブレットに転送したいのですが、次のコードにより、すべてのアクションが Struts2 サーブレットにリダイレクトされます。
<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>
私を"/do/*"
別のサーブレットに転送したいのですが、xyz
誰かが私が何をすべきかを手伝ってくれませんか。正規表現を使用する必要があるかもしれないという考えがありますが、多くのパターンを試して失敗しました。一致すると思われる最高の正規表現を試しました:
[^(\/do\/*)]
<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>
<servlet>
<servlet-name>xyzServlet</servlet-name>
<servlet-class>com.blah.xyzServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xyzServlet</servlet-name>
<url-pattern>/do/guide</url-pattern>
同様に、独自の目的を持つそのようなサーブレットがたくさんあります。URL パターンはほぼ同じです... /do/abc や /do/pqr などのようなものです。
EDIT : StrutsPrepareAndExecuteFilter を使用し、受け入れられたソリューションをコードに追加することにより、解決された問題。