Struts2でのURLのマッピング方法を変更しようとしています。
www.site.com/login.actionのようなURLを設定して、www.site.com / action/loginのように見せたいのですが。
struts.xml定数を使用してアクション拡張を削除できることを理解しています
<constant name="struts.action.extension" value="" />
web.xmlを次のように更新しました。
<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>
これにより、すべての/ action/ urlをStrutsにルーティングしたいという結果が得られます。問題は、StrutsがURLのアクション部分が実際にはアクション拡張であることを認識していないことです...そしてもちろん、Strutsがそれを知っているとは思いません。したがって、すべてのStruts.xmlアクションマッピングでは、名前空間またはアクション名に/actionを含める必要があります。
PrefixBasedActionMapperクラスを見たことがありますが、自分がやろうとしていることを達成するための正しい軌道に乗っているのか、あるいはそうではないのか、そしておそらくそれは不可能でさえあるのだろうかと思います。
誰かがこれについていくつかの洞察を持っていますか?