是否可以在Grails动作中使用Spring的@RequestBody?

时间:2012-09-11 04:07:37

标签: java json grails spring-mvc


我想使用Spring的@RequestBody注释将JSON从请求主体绑定到对象。是否可以在Grails控制器方法中使用它?如果没有,除了使用创建的request.JSON对象之外,还有更优雅的方法吗?

以下是我要做的事情:
FooController.groovy:

def someMethod(@RequestBody Bar bar) {
    render(bar.baz)
}

class Bar {
    String baz
}

然后我将以下JSON发布到此端点:

{
    "baz":"chicken"
}

我希望POST的响应为chicken

是否有可能,或者是否有其他机制将JSON绑定到这样的控制器参数?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您在相关的URL映射中使用resourceparseRequest(有关详细信息,请参阅http://grails.org/doc/latest/guide/webServices.html),那么将解析传入的JSON并用于填充params地图,即JSON

{
    "baz":"chicken"
}

将设置params.baz == "chicken"。然后,生成的params条目可以通常的方式绑定到命令对象中,您不需要注释action参数。