首页 > 解决方案 > 即使服务器端的值设置为 true,复选框也未显示为选中状态

问题描述

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

标签: springformsjspjsp-tagsspring-tld

解决方案


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

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

<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>

推荐阅读