1

即使在服务器端将测试变量设置为 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>
4

2 回答 2

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>
于 2018-06-14T15:06:19.467 回答
-1

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

相反,您可以使用选中的属性。写吧

checked ="checked"

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

于 2018-06-09T19:44:26.347 回答