1

我在使用 spring mvc 复选框标签时遇到问题。我有一个 BookmarkMapping 对象,它又具有 List 对象。在文件夹映射里面有 id、name 和 isMapped (boolean) 三个属性。这是我打算显示复选框的 isMapped 属性。

所以在我的页面中,我将 modelAttribute 设为“bookmarkMapping”。其中有一个文件夹映射列表。对于我的复选框选中属性,folderMapping 中的每个项目都是 isMapped 设置为 true 或 false。

我正在尝试这个

<c:forEach var="folderMapping" items="${bookmarkMapping.folderMapping}" varStatus="i">
    <form:checkbox path="folderMapping[${i.count-1}].isMapped" label="${folderMapping.folderName}"/>
</c:forEach>

这会在 html 中很好地显示复选框,但是在发布时它也不会在发布的对象中将复选框的更改反映为 true / false。它总是显示错误。

4

2 回答 2

0

checkbox设置标签的 value 属性。

<c:forEach var="folderMapping" items="${bookmarkMapping.folderMapping}" varStatus="i">
    <form:checkbox path="folderMapping[${i.count-1}].isMapped" 
         value = "${folderMapping[${i.count-1}].isMapped}" 
         label="${folderMapping.folderName}"/>
</c:forEach>
于 2013-01-07T10:39:04.950 回答
0

你试过<form:checkboxes />标签吗?我认为这就是您在这里所需要的,也许可以解决您的问题。尝试这样的事情,替换你的<c:forEach />标签:

<form:checkboxes path="folderMapping" items="${allCheckboxValues}" itemLabel="folderName" itemValue="isMapped"/>

您需要allCheckboxValues在控制器中预先填充所有可能的值。

查看有关此标签的spring 文档以获取更多帮助和TLD 文档

于 2013-01-07T10:32:49.000 回答