Java 是否可以使用弹簧&x27;Grails操作中的s@RequestBody?

Java 是否可以使用弹簧&x27;Grails操作中的s@RequestBody?,java,json,grails,spring-mvc,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发布到此端点: {


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

下面是我要做的:
FooController.groovy:

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

class Bar {
    String baz
}
然后,我将以下JSON发布到此端点:

{
    "baz":"chicken"
}
我希望帖子的回复是
chicken

你知道这是否可行吗,或者有没有其他机制将JSON绑定到这样的控制器参数


谢谢

如果在相关URL映射中使用
resource
parseRequest
(有关详细信息,请参阅),则传入的JSON将被解析并用于填充
params
映射,即JSON

{
    "baz":"chicken"
}

将设置
params.baz==“鸡肉”
。生成的params条目可以按照通常的方式绑定到command对象中,您不需要对action参数进行注释。

Omg,非常感谢!!我真的希望Grails会有这样的东西。。。如果没有,我会失望的。再一次,我发现我需要RTFM:)太棒了!是否可以为所有控制器启用
parseRequest
?因为使用此解决方案,我必须在urlMapping中声明所有控制器,以便启用此选项。好的,我只需在通用url映射上添加
parseRequest
/$controller/$action?/$id?
。是否有一些注意事项?主要注意事项是,对于
parseRequest:true
,控制器操作无法再直接访问请求数据-如果您的任何控制器(或您使用的任何插件中的控制器)需要,则需要为这些控制器添加特殊情况。