在我的 Grails 应用程序中,我有几个域类,比如Author
和Book
. 我正在使用默认的 URL 映射:
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
}
所以显示 id 为 2 的书的相对 URL 是/book/show/2
. 为了向 id 为 5 的作者展示它是/author/show/5
. Author
和Book
类都有一个属性name
,但不能保证是唯一的。
出于 SEO 原因,我想在这些 URL 中包含这个名称,例如更改 URL 以显示一本书/book/show/2/the+davinci+code
和 URL 以显示作者/author/show/5/dan+brown
。
为了防止破坏任何现有的(外部)链接到我的页面,理想情况下,我希望同时支持这两种格式,这样以下任一格式都会显示 Dan Brown 的页面
/author/show/5
/author/show/5/dan+brown
从我现在的位置(仅限带有 ID 的 URL)到我想要的位置(也支持带有 ID 和名称的 URL),最简单的方法是什么?