【问题标题】:Grails forms, nested mapGrails 表格,嵌套地图
【发布时间】:2017-11-12 05:09:52
【问题描述】:

我正在尝试在 Grails 命令对象/表单中的地图中添加另一层嵌套。命令对象当前有一个名为 otherData 的 Map。

Map otherData

表单的字段具有如下所示的命名约定,提交时会生成地图。

<input id="birthDate" name="otheData[birthDate]" type="hidden" value="">
<input id="county" name="otheData[county]" type="hidden" value="">

然后在表单提交时在我的控制器中,如果有任何数据要执行搜索,我会将其绑定到另一个地图。

if(otherData) {
    _searchCriteria.otherData = otherData
}

我基本上想要另一层不确定性,这样我就可以检查另一个关键路径并对数据执行正确的操作。示例如下:

if(searchCriteria otherData.relativeDate) {
    ....
} else if(searchCriteria otherData.absoluteDate) {
    ....
}

我已尝试对输入的名称进行编码以表示嵌套映射,但它没有在我的控制器中创建嵌套映射。

<input id="birthDate" name="otheData[relative:[birthDate]]" type="hidden" value="">

它正在生成一个带有 keypath 的地图

otherData.relative:[birthDate

有没有办法在结构中添加另一层?

【问题讨论】:

    标签: html grails


    【解决方案1】:

    尝试"otheData.relative.birthDate" 而不是otheData[relative:[birthDate]]

    【讨论】:

    • 如上所述,尽管这通常会绑定到包含 thou 项的嵌套验证对象或对 otherData 的引用作为地图(未测试的第 3 层),但通常您会拥有域模型/对象模型绑定到它。在控制器中尝试 println params 以查看返回的内容 - 以及 println params.'otheData.relative.birthDate'
    • 如果我在另一端有一个集合,可以说fruits fruits[0]=apple,fruits[1]=orange 等我的集合将作为列表返回,我会收到如果我以这种方式收集,则两次水果参数并绑定到列表
    • 谢谢,params 打印产生以下内容:此时正在工作的正确形式 otherData[keyOne]:valueOne 和现在不工作的不正确形式 otherData.relative.birthDate:testValue
    • 看起来该值总是被解释为 :value 所以我们需要让名称能够适应它。
    猜你喜欢
    • 2016-10-14
    • 2011-01-27
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多