精通 Grails:用定制URI和codec优化Grails中的URI
创建一个定制 URI
UrlMappings.groovy 文件为创建新的 URI 提供了额外的灵活性。虽然 http://localhost:9090/blogito/entry/list/jsmith 已经可以发挥作用,但是假设,最新出现的用户请求要求支持 http://localhost:9090/blogito/blog/jsmith 这样的 URI,又该如何呢?没问题!如清单 9 所示那样向 UrlMappings.groovy 添加一个新的映射:
清单 9. 向 UrlMappings.groovy 添加一个新的定制映射
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(controller:"entry")
"/blog/$id"(controller:"entry", action="list")
"500"(view:'/error')
}
}
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(controller:"entry")
"/blog/$id"(controller:"entry", action="list")
"500"(view:'/error')
}
}
现在,以 /blog 开头的那些 URI 都将会被重新定向到条目控制器和列表动作。虽然 $user 或 $login 的描述性可能更好,但是让 $id 与 Grails 约定保持一致就意味着 "/$controller/$action?/$id?" 和 "/blog/$id"(controller:"entry", action="list") 二者能够指向同一个端点。
在 Web 浏览器内键入 http://localhost:9090/blogito/blog/jsmith 以验证此映射能够工作。
处理好 Users 之后,就可以集中精力为 Entries 创建更友好的 URI。
0
相关文章