我正在尝试更改 Struts 2 中 url 的映射方式。
我希望能够设置一个像 www.site.com/login.action 这样的网址,让它看起来像 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 类,我想知道我是否走在正确的轨道上来完成我想要做的事情......或者可能不是......也许甚至不可能。
有人对此有所了解吗?