使用 Struts2 在创建博客条目时生成动态 URL

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

通配符映射或 S2 REST 插件。 【参考方案1】:

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

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

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

以我的个人资料为例:

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

你可以改成

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

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

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

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

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

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

如果使用人工密钥。

【讨论】:

以上是关于使用 Struts2 在创建博客条目时生成动态 URL的主要内容,如果未能解决你的问题,请参考以下文章

生成后在 Nuxt SPA 中使用动态路由

使用 React 和 Next.js 构建博客

解决动态生成的网页在微信浏览器中每次返回都会重新生成的问题

解决动态生成的网页在微信浏览器中每次返回都会重新生成的问题

struts2.5动态方法调用和默认Action

在网格中为动态列创建过滤器