gpt4 book ai didi

Grails 2.5.0 - 命令对象使用 JSON 处理 POST 请求

转载 作者:行者123 更新时间:2023-12-02 15:57:24 26 4
gpt4 key购买 nike

我设置了一个表单来向 Grails Controller 发送 POST 请求,该 Controller 使用命令对象作为其一个参数。命令对象包含一些正确绑定(bind)的属性以及未正确绑定(bind)的项目列表。我正在做的是通常通过 POST 请求发送其他参数,但将列表包装为 JSON 字符串,因为我不确定通过 POST 发送列表的另一种方式(例如,XML 字符串) .让命令对象从字符串中正确绑定(bind)列表的最后一步是什么,或者有没有更好的方法将列表发送到命令对象?

编辑:
这是一个简化版本:

测试 URI:

request.forwardURI = 'list1=[{"listprop1":"a","listprop2":"b"}]&prop1=c&prop2=d'

命令对象:
class MyListCommand {
String listprop1
String listprop2

static constraints = {
listprop1 nullable: true
listprop2 nullable: true
}
}

class MyCommand {
List<MyListCommand> list1 = [].withLazyDefault {
new MyListCommand('[]')
}
String prop1
String prop2

static constraints = {
prop1 nullable: true
prop2 nullable: true
}
}

表格:
<form action="${createLink(action: 'myAction')}" method="post">
<div ng-repeat="list1 in list1array">
<input type="hidden" name="list1[{{ $index }}].listprop1" value="{{list1.listprop1}}"/>
<input type="hidden" name="list1[{{ $index }}].listprop2" value="{{list1.listprop2}}"/>
</div>
<input name="prop1" type="text">
<input name="prop2" type="text">
</form>

最佳答案

尝试像这样发送请求:

request.forwardURI = 'list1[0].listprop1=a&list1[0].listprop2=b&prop1=c&prop2=d'

甚至更好

更好的方法是使用带有 g:remoteForm 的 Ajax标签。

关于Grails 2.5.0 - 命令对象使用 JSON 处理 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32811487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com