1

我正在尝试更改 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 类,我想知道我是否走在正确的轨道上来完成我想要做的事情......或者可能不是......也许甚至不可能。

有人对此有所了解吗?

4

1 回答 1

0

看起来您想在应用程序上创建类似 REST 的链接。您是否考虑过类似 REST 插件http://struts.apache.org/2.1.6/docs/rest-plugin.html的东西 ?

于 2012-07-09T17:40:22.177 回答