我想使用 Spring 的 @RequestBody
注释将 JSON 从请求主体绑定(bind)到一个对象。是否可以在 Grails Controller 方法中使用它?如果没有,是否有比使用创建的 request.JSON
对象更优雅的方法?
这是我正在尝试做的事情:
FooController.groovy:
def someMethod(@RequestBody Bar bar) {
render(bar.baz)
}
class Bar {
String baz
}
然后我将以下 JSON 发布到此端点:
{
"baz":"chicken"
}
我希望 POST 的响应是 chicken
。
知道这是否可行,或者是否有其他机制可以像这样将 JSON 绑定(bind)到 Controller 参数?
谢谢!
最佳答案
如果您在相关的 URL 映射中使用 resource
或 parseRequest
(详见 http://grails.org/doc/latest/guide/webServices.html),那么传入的 JSON 将被解析并用于填充 params
映射,即JSON
{
"baz":"chicken"
}
将设置 params.baz == "chicken"
。然后可以按照通常的方式将生成的参数条目绑定(bind)到命令对象中,您不需要注释操作参数。
关于java - 是否可以在 Grails 操作中使用 Spring 的 @RequestBody?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12362624/