对象的Grails / Spring数据绑定映射

时间:2014-03-06 03:53:38

标签: spring grails data-binding

我遇到了包含对象映射的命令对象的数据绑定问题。这是我的命令对象:

class SaveEntries {
    Map<Integer, EntryRow> entryRows = new HashMap<Integer, EntryRow>()
    String name
}

class EntryRow {
    int systemID
    def hours = ["","","","","","",""]
}

这是我的控制器代码:

def save() {
    println request.parameters
    println params
    def saveEntries = new SaveEntries()
    bindData(saveEntries, params)
    saveEntries.entryRows.each{ k, v -> println "${k}:${v.systemID}" }
    println saveEntries.name
}

这是我的表格:

<form action="main/save">
    <input type="text" name="name" value="test"/>
    <input type="text" name="entryRows[0].systemID" value="1"/>
    <input type="text" name="entryRows[0].hours[0]" value="5"/>
    <input type="submit"/>
</form>

最后,这是我得到的输出:

[entryRows[0].systemID:[1], name:[test], entryRows[0].hours[0]:[5]]
[entryRows[0].systemID:1, entryRows[0]:[systemID:1, hours[0]:5], name:test, entryRows[0].hours[0]:5, action:save, format:null, controller:main]
test

正如您所看到的,entryRows地图没有填充任何内容。如果我使用name =“entryRows ['test'] value =”test“,我可以使用Map来填充,但是一旦我尝试使用对象作为密钥,数据绑定就会失败。

谁能看到我哪里出错了?谢谢!

0 个答案:

没有答案