grails URL映射中的参数化操作名称

grails URL映射中的参数化操作名称,grails,urlmappings.groovy,Grails,Urlmappings.groovy,我正在尝试将JSON api映射到我的控制器,如: /api/user/1/location GET-->Controller.getLocation() /api/user/1/location POST-->控制器。setLocation() 我尝试了以下url映射规则,但没有成功: "/api/$controller/$id/$property" { action = {[GET: "get${params.property.capitalize()}", POST

我正在尝试将JSON api映射到我的控制器,如:

/api/user/1/location GET-->Controller.getLocation()

/api/user/1/location POST-->控制器。setLocation()

我尝试了以下url映射规则,但没有成功:

    "/api/$controller/$id/$property" {
        action = {[GET: "get${params.property.capitalize()}", POST: "set${params.property.capitalize()}"]}
    }

任何人都尝试过类似的方法

我尝试过,并成功地实现了这两种方法:

"/api/$controller/$id/$property"{
     action = {"get"+params.property.capitalize()}            //put all joint into the {} bracelet
}

但未能将动态参数分配到[GET:'',POST:'']映射,例如:

"/api/$controller/$id/$property"{
     action = {["POST": "set"+params.property.capitalize(), "GET": "get"+params.property.capitalize()]}
}

两者都产生了404错误

所以我猜Grails只允许这种配置是静态的。也许有人以后可以深入研究源代码来发现

"/api/$controller/$id/$property"{
     action = {["POST": "set"+params.property.capitalize(), "GET": "get"+params.property.capitalize()]}
}
"/api/$controller/$id/$property"{
     action = [POST: {"set"+params.property.capitalize()}, GET: {"get"+params.property.capitalize()}]
}