即使在服务器端将值设置为true,也不会显示已选中的复选框

时间:2018-06-09 19:40:34

标签: spring forms jsp jsp-tags spring-tld

即使在服务器端将测试变量设置为true,我的所有复选框都保持未选中状态。当我检查代码时,所有复选框值= true。

   <c:if test="${not empty myObject.objectList}">
        <c:forEach items="${myObject.objectList}" varStatus="index">
            <tr class="cdata">
                <td align="center">
                    <td><form:checkbox  path="test" /> <c:out 
            value="${testName}" 
                /></td>
               </td>
            </tr>
        </c:forEach>
      </c:if>

2 个答案:

答案 0 :(得分:0)

问题是您没有将复选框绑定到特定项目。您可以将其绑定到列表中的特定项目,如下所示。

您必须确保列表的一致排序,以确保正确更新提交的值。

<c:if test="${not empty myObject.objectList}">
    <c:forEach var="items" items="${myObject.objectList}" varStatus="status">
        <tr class="cdata">
            <td align="center">
                <form:checkbox path="items[${status.index}].test" /> 
                ${testName}
            </td>
        </tr>
    </c:forEach>
 </c:if>

答案 1 :(得分:-1)

设置值true不一定反映要检查的复选框

相反,您可以使用checked属性。只需写下

checked ="checked"

在复选框中,它会反映更改