我一直在搜索从Struts 2中的网址中删除.action
后缀扩展名的方法。我已经浏览了类似代码的各种变体。例如:
<constant name = "struts.action.extension" value = ""/>
和
<constant name = "struts.action.extension" value = ","/>
但没有效果。我的网站一直重定向到/xyz.action
,并在我指定网址/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。
答案 0 :(得分:0)
尝试在struts.xml中进行更改,如下所示: 通过赋予价值&#34;无论什么&#34;而不是&#34;,&#34; ANS:
<constant name="struts.action.extension" value="whatever" />
答案 1 :(得分:0)
您需要在 StrutsPrepareAndExecuteFilter 的过滤器映射的 url-pattern > 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>/*</url-pattern>
</filter-mapping>
(通常情况下会是<url-pattern>*.do</url-pattern>
或<url-pattern>*.action</url-pattern>
)