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

时间:2015-11-11 14:23:55

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

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

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

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

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

1 个答案:

答案 0 :(得分:3)

最好的方法是使用Advanced Wildcard Mapppings(还有其他通配符用法,以及@AleksandrM评论的Struts2 Rest插件,但最接近你需要的是AWM)。

除官方文档(也已关联)外,您可以阅读details in this answer 以及由其链接的两个答案

也就是说,考虑到您所发布的网址正好缺少一个人工密钥,并且正在使用该文章的名称作为密钥。您必须准备好处理重复的标题,处理特殊字符转换和保存,等等。
使用像StackOverflow URL这样的密钥会更容易(如果不那么优雅)。

以我的个人资料为例:

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

您可以将其更改为

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

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

您无法记住网址或您打开网页的日期,但在您打开网页一次后,如果您记住其网址中的单个字词,则可以进入浏览器的地址栏并输入它以立即检索页面(例如,输入&#34; Ligios&#34;您可以检索页面)。

最后一个观察:如果您在根上下文中挂载应用程序,那么您也不必在URL中强制使用blog部分。然后你可以:

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

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

如果使用人工钥匙。