很久以前,一个项目被传递给我,它使用JSP作为视图,使用spring 3.1作为控制器 - 这两个我都没有经验,并且按照惯例,整个事情中大约有4条评论。无论如何,我的问题是,在替换
时<form:checkboxes path="class.list" items="${items}" delimiter="<br />" />
使用
<c:forEach var="item" varStatus="vs" items="${items}">
<form:checkbox path="class.list" item="${item}" />
// check if nesting is required, if so create div and nested list point to class.list.children
</c:forEach>
似乎在我的class.list中创建了其他元素,这些元素未被选中,导致进一步休息。
非常感谢任何指导。
答案 0 :(得分:1)
我建议保留表单:复选框完整,因为它是生成复选框的紧凑方式。我不知道有一个令人信服的理由不使用弹簧形式标签,如果它已经到位并正常工作。至于为什么你看到隐藏的领域。看这里: http://static.springsource.org/spring/docs/2.5.x/reference/view.html
以下是相关部分: 您可能不希望看到的是每个复选框后的附加隐藏字段。如果未检查HTML页面中的复选框,则在提交表单后,它的值将不会作为HTTP请求参数的一部分发送到服务器,因此我们需要在HTML中使用此方法来解决Spring表单数据绑定问题上班。 checkbox标签遵循现有的Spring约定,包括为每个复选框添加前缀为下划线(“_”)的隐藏参数。通过这样做,你有效地告诉Spring“复选框在表单中是可见的,我希望我的对象将绑定表单数据以反映复选框的状态,无论如何”。
希望这有帮助。