繁体   English   中英

Struts 2-从网址中删除操作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM