使用PrefixBasedActionMapper进行Struts 2动作映射

时间:2012-07-06 16:13:55

标签: java struts2 struts struts-config

我正在尝试更改在Struts 2中映射网址的方式。

我希望能够设置像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类,我想知道我是否在正确的轨道上完成我正在尝试做的事情......或者可能不是......也许它甚至不可能。

任何人都对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

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

的内容