Struts 2 - 从 url 中删除操作 [英] Struts 2 - Removing action from url

查看:32
本文介绍了Struts 2 - 从 url 中删除操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have been searching for methods to remove .action suffix extension from the url in Struts 2. I have gone through various variations of similar codes. For eg:

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

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

但没有效果.我的网站一直重定向到 /xyz.action 并在我将 url 指定为 /xyz 时给出找不到资源的错误.我正在使用 Struts 2.2.3.有人可以告诉我该怎么做才能实现这一目标吗?问题是否有可能与 web.xml 而不是 struts.xml 相关?

but to no effect. My site it keeps on redirecting to /xyz.action and gives an error of Resource not Found when I specify the url to be /xyz. I am using Struts 2.2.3. Can some one please tell me what to do to achieve this? Is there a possibility that the problem pertains to web.xml rather than 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.

there are various other filters like session, email, transaction etc. and a servlet.

推荐答案

你需要改变filter-mappingurl-pattern> 相应地用于 web.xml 中的 StrutsPrepareAndExecuteFilter:

<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>

(虽然通常它类似于 *.do*.action )

(while normally it would be something like <url-pattern>*.do</url-pattern> or <url-pattern>*.action</url-pattern> )

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

这篇关于Struts 2 - 从 url 中删除操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆