我非常擅长grails(1.3.7)所以请耐心等待: - )
我有一个gsp,我有各种复选框。用户可以单击它们,然后将其答案发送给控制器。控制器正在正确接收此请求。
我的问题是,为了处理用户选择的内容,我必须检查每个参数 - 看看是否真的选中了这个复选框。这真的很麻烦,并且不能很好地工作,因为显示复选框的页面是动态的 - 所以可以点击的复选框也是动态的。在我的控制器中,我不知道我必须检查哪些参数。
是否有可能在我的控制器中收到所有复选框(或更好:所有选中的复选框)的列表?我研究过但没有找到答案!
感谢您的回答! :-)
[编辑]
谢谢,
params.name.each{i->
System.out.println(i);
}
非常简单并且有效:-)它只是返回已检查的
答案 0 :(得分:11)
它必须作为额外的请求参数传递(这是http的限制)。您可以在表单中添加以下字段,例如:
<input type="hidden" name="checkboxes" value="${myCheckboxesNames.join(',')}"/>
或使用JavaScript进行相同操作,因为它在客户端名称是动态的。
顺便说一句,您也可以通过
检查所有请求参数params.each { name, value ->
// so something
}
因此,如果您为此复选框名称使用了一些特殊的前缀/后缀,那么它将是:
params.entrySet().findAll {
it.key.startsWith(prefix)
}.each {
println "Checkbox $it.key = $it.value"
}