我正在尝试更改在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类,我想知道我是否在正确的轨道上完成我正在尝试做的事情......或者可能不是......也许它甚至不可能。
任何人都对此有所了解吗?
答案 0 :(得分:0)
您希望在应用程序上创建类似REST的链接。您是否考虑过类似REST插件http://struts.apache.org/2.1.6/docs/rest-plugin.html?
的内容