“添加”指向现有 URL 的 url,使 Struts2/Java EE 更易于阅读

发布于 2024-12-02 22:14:42 字数 757 浏览 0 评论 0原文

我想将丑陋的 URL 更改

/search.action?category=1

为一个可读的 URL,看起来像

/my-first-category

我在 Tomcat 上使用 Struts 2、Java EE。

我已经在 struts 中尝试过这样的 URL 配置:

    <action name="my-first-category">
        <result type="redirect">search.action?category=1</result>
    </action>

它会进行重定向,一旦用户访问该页面,他们就会在地址栏中看到丑陋的 URL,而不是可读的 URL。

这个映射也会发生同样的事情:

    <action name="12345">
       <result type="redirectAction">
            <param name="actionName">search</param>
            <param name="category">1</param>
        </result>
    </action>

你知道如何实现我需要做的事情吗?

I want to change my ugly url which looks like:

/search.action?category=1

to a nice readable URL which looks like

/my-first-category

I'm using Struts 2, Java EE on Tomcat.

I've tried URL configs in struts like this:

    <action name="my-first-category">
        <result type="redirect">search.action?category=1</result>
    </action>

Which does a redirect, and once the user visits the page they see the ugly URL in the address bar, not the nice readable one.

The same thing happens with this mapping:

    <action name="12345">
       <result type="redirectAction">
            <param name="actionName">search</param>
            <param name="category">1</param>
        </result>
    </action>

Do you know how to achieve what I need to be able to do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

疯到世界奔溃 2024-12-09 22:14:42

您可以使用的一件事是 struts2 中的 NamedVariablePatternMatcher。关于其功能的讨论可以在这里找到

Struts2中的NamedVariablePatternMatcher

否则,您可以对 URL 使用 URL 重写,将它们转换为用户友好且可读的格式。
tuckey 网址是使用最广泛的网址过滤器之一,用于相同的

URl 重写

One thing you can use is NamedVariablePatternMatcher in struts2. a discussion about its features can be found here

NamedVariablePatternMatcher in Struts2

else you can use URL-Rewriting for your URLS by which they can be converted as a user friendly and readable format.
tuckey URL is one of the most widely used URL filter for the same

URl-Rewriting

如果没结果 2024-12-09 22:14:42

您最好从一开始就创建干净、安静的 URL,而不是稍后尝试掩盖“丑陋”的 URL。为了扩展 umesh 提到的 NamedVariablePatternMatcher 方法,这里有一个显示如何设置的示例:

struts.xml

<struts>    
  <constant name="struts.enable.SlashesInActionNames" value="true"/>
  <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
  <constant name="struts.patternMatcher" value="namedVariable"/>

  <package ...>
    <action name="categories/{category}" ...>
      ...
    </action>
  </package>
</struts>

示例操作

public class SearchAction extends ActionSupport {
  private Integer category;

  public void setCategory(Integer category) {
    this.category = category;
  }
}

这将产生如下 URL:

/categories/1
/categories/2
/categories/3

You're better off creating clean, restful URLs from the start, rather than trying to mask the "ugly" ones later. To expand on the NamedVariablePatternMatcher approach that umesh mentioned, here's an example that shows how to set that up:

struts.xml

<struts>    
  <constant name="struts.enable.SlashesInActionNames" value="true"/>
  <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
  <constant name="struts.patternMatcher" value="namedVariable"/>

  <package ...>
    <action name="categories/{category}" ...>
      ...
    </action>
  </package>
</struts>

Example Action

public class SearchAction extends ActionSupport {
  private Integer category;

  public void setCategory(Integer category) {
    this.category = category;
  }
}

This would yield URLs like:

/categories/1
/categories/2
/categories/3
_失温 2024-12-09 22:14:42

我建议查看 Struts 2 Rest 插件架构。

Apache Struts 2 文档 REST 插件

我已经开始移动我的很多新项目都采用 REST 风格,因为它支持更友好的 URL 项目模型。

您可能还对以下文章感兴趣:

Struts 2:Actions 之间的参数

这演示了如何通过 struts.xml 在操作中传递参数。您可以从操作类设置参数,也可以通过在 xml 文件中硬编码来设置静态参数。

I would suggest checking out the Struts 2 Rest Plugin architecture.

Apache Struts 2 Documentation REST Plugin

I've begun moving a lot of my new projects to REST style as it supports a more friendly URL project model.

You might also be interested in the following post:

Struts 2: parameters between Actions

This demonstrates how to pass parameters in your action via the struts.xml. You can set parameters from your action class or set static parameters by hard coding them in the xml file.

爱她像谁 2024-12-09 22:14:42

尝试使用它们非常常见并在 *.tk 和 *.co.cc 域中使用的框架

希望这有帮助

try to use frames they are very common and used in *.tk and in *.co.cc domains

wish this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文