这看起来很简单,但显然很难。将一系列(有限且已知长度)复选框绑定到 grails 命令对象上的布尔值列表。当然应该可以使用先前选择的值“填充”命令对象以恢复视图。
例如,我有一个 grails webflow。它首先将 4 个复选框绑定到布尔列表中的一个条目。它切换到下一个状态并打印值 - 例如 [true,true]。向后导航,所有复选框都是空的(这非常有意义 - 4 个复选框,只有两个值)。所以它应该是例如 [false, true, false, true]。
无论我做什么,我似乎都无法做到这一点。在春天,这很容易,只需将复选框绑定到 value[0]..[3]... 为什么在 Grails 中这么简单的事情这么难?!
请帮忙,这真的会让我很开心!
示例命令对象:
class TestCmdObj {
List<Boolean> boolListOne = []
}
控制器中的示例绑定方法(在流程操作中执行的闭包):
private def doBindAndValidateBoolList = {
bindData(flow.testCmdObj, params, [include:['boolListOne']])
}
到目前为止,一切都很好。这实际上在显示流中的下一页时有效,testCmdObj.boolListOne 为选中的复选框显示 true ..
GSP 代码很简单,使用:
<g:checkBox name="boolListOne"/>
<g:checkBox name="boolListOne"/>
<g:checkBox name="boolListOne"/>
<g:checkBox name="boolListOne"/>
在下一个视图中,我可以打印出 ${testCmdObj.boolListOne} 并打印出尽可能多的“真实”值,就像我检查过的一样……(例如 [true, true]) 如果我向后导航,复选框是空的。 .. 再说一次,我可以理解,因为它们都具有相同的名称...