java - 是否可以在 Grails 操作中使用 Spring 的 @RequestBody?

标签 java json grails spring-mvc


我想使用 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 映射中使用 resourceparseRequest(详见 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/

相关文章:

java - 使用 xstream 生成子类从 xml 解码

java - 如何在 Eclipse 中将多行与单行对齐

java - 每次使用 PowerMock 进行测试后,模拟行为都会重置

Java:Map中的内部数据结构

php - 使用 php 将 mysql 数据转换为带有附加信息的 json

Grails 安全插件 : Redirecting post and passing its data

java - Jackson JsonMappingException 错误 - 表示属性 'PROPERTY_NAME' 的多个字段

json - 从 JSON 渲染 React Native 元素

grails - 从grails应用程序启动grails命令

spring - Grails安全插件:在哪里存储其他用户数据?