1

我一直在寻找.action从 Struts 2 中的 url 中删除后缀扩展的方法。我经历了类似代码的各种变体。例如:

<constant name = "struts.action.extension" value = ""/>

<constant name = "struts.action.extension" value = ","/>

但没有效果。当我将/xyz.actionurl 指定为/xyz. 我正在使用Struts 2.2.3. 有人可以告诉我该怎么做才能实现这一目标吗?问题是否有可能与 web.xml 而不是 struts.xml 有关?

web.xml

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

还有各种其他过滤器,如会话、电子邮件、事务等和 servlet。

4

2 回答 2

0

尝试在 struts.xml 中进行如下更改:通过给出值“whatever”而不是“,” ANS:

<constant name="struts.action.extension" value="whatever" />
于 2013-06-18T05:34:16.760 回答
0

您需要相应地更改web.xmlStrutsPrepareAndExecuteFilter过滤器映射的url 模式

<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>/*</url-pattern>
</filter-mapping>

(虽然通常它会像<url-pattern>*.do</url-pattern>or <url-pattern>*.action</url-pattern>

文档:http ://struts.apache.org/release/2.3.x/docs/webxml.html

于 2013-06-18T08:04:54.630 回答