如何在Grails 2.3.7中使用路径参数

时间:2014-04-09 21:10:56

标签: grails

我有一个使用grails的项目,我希望我的控制器网址看起来像

http://<domain>/<contextRoot>/<controller>/<method>/123 

其中123是对象的ID。我可以在春天这样做......

@RequestMapping(value = "/path/to/{iconId}", method = RequestMethod.GET) 

但由于注释是由Grails处理的,我不知道如何覆盖它们。

2 个答案:

答案 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

中公开