我有一个使用grails的项目,我希望我的控制器网址看起来像
http://<domain>/<contextRoot>/<controller>/<method>/123
其中123是对象的ID。我可以在春天这样做......
@RequestMapping(value = "/path/to/{iconId}", method = RequestMethod.GET)
但由于注释是由Grails处理的,我不知道如何覆盖它们。
答案 0 :(得分:1)
将以下内容添加到UrlMappings.groovy
"/$controller/$action?/$id?"
答案 1 :(得分:1)
网址映射在grails-app / conf / UrlMappings.groovy内完成documentation可以更详细地解释您可以做什么,但是对于您的示例,您可以执行以下操作:
class UrlMappings {
static mappings = {
"/path/to/${iconId}"(controller: 'myController', action: 'myAction')
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
}
请注意,映射是第一个匹配的基础,因此您要向控制器和操作添加静态路径。您的iconId将自动在参数params.iconId