【问题标题】:Generating dynamic URL on creation of a blog entry using Struts2使用 Struts2 在创建博客条目时生成动态 URL
【发布时间】:2016-02-12 15:55:40
【问题描述】:

我有一个音乐博客,人们可以在其中撰写自己的文章或评论作为博客条目,它会显示在其他博客条目中。

每个博客条目都应该有一个与之关联的 URL,类似于:

www.myblog.com/blog/title-of-blog-entry

如何使用 Struts2 实现这一点?我可以在 struts.xml 文件中动态添加一个条目或在 xml 文件中使用通配符映射,或者类似的东西吗?

【问题讨论】:

  • 通配符映射或 S2 REST 插件。

标签: java struts2 friendly-url pretty-urls wildcard-mapping


【解决方案1】:

最好的办法是使用高级通配符映射(还有其他通配符用法,还有@AleksandrM 评论的 Struts2 Rest 插件,但最接近您需要的是 AWM)。

您可以阅读details in this answer 以及由它链接的两个答案,而不是官方文档(也链接)。

也就是说,请考虑 完全 与您发布的 URL 类似的 URL 缺少人工键,并且使用文章名称作为键。您必须准备好处理重复标题、处理特殊字符转换和保存等。
拥有像 StackOverflow URL 这样的键会更容易(即使不太优雅)。

以我的个人资料为例:

https://stackoverflow.com/users/1654265/andrea-ligios

你可以改成

https://stackoverflow.com/users/1654265/chuck-norris

它仍然会打开我的个人资料。关键是1654265,StackOverflow 完全忽略了描述性部分,但它很重要,因为它允许您在浏览器中按名称搜索地址栏历史记录(与页面的标题一模一样)

您不记得 URL 或打开页面的日期,但是在您打开页面一次后,如果您记得其 URL 中的一个单词,您可以进入您的浏览器并输入它以立即检索页面(例如输入“Ligios”您可以检索该页面)。

最后的观察:如果您将应用程序安装在根上下文中,则不必在 URL 中也包含 blog 部分。那么你可以:

www.myblog.com/title-of-blog-entry

www.myblog.com/123456/title-of-blog-entry

如果使用人工密钥。

【讨论】:

    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 2020-03-07
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2014-12-01
    • 1970-01-01
    相关资源
    最近更新 更多