[英]Struts 2 - Removing action from url
我一直在寻找从Struts 2的URL中删除.action
后缀扩展名的方法。我经历了各种类似代码的变体。 例如:
<constant name = "struts.action.extension" value = ""/>
和
<constant name = "struts.action.extension" value = ","/>
但没有效果。 我的网站一直重定向到/xyz.action
,当我将URL指定为/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。
尝试按如下所示更改struts.xml:通过为值“ whatever”(而不是“,”)提供ANS:
<constant name="struts.action.extension" value="whatever" />
您需要相应地更改web.xml中 StrutsPrepareAndExecuteFilter的过滤器映射的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>
或<url-pattern>*.action</url-pattern>
)
Doc: http : //struts.apache.org/release/2.3.x/docs/webxml.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.