我完全不知道如何强制JSP修改集合中的值。
我有这样的代码(最重要的部分-我认为):
<tbody>
<c:forEach items="${formObject.userList}" var="list" varStatus="cnt">
<c:set var="idx" value="${cnt.index}"/>
<tr>
<td class="moduleCode">
<c:choose>
<c:when test="${list.userType == 'OW'}"> <spring:message
code="manage-flow.user.message.ow"/>
</c:when>
<c:when test="${list.userType == 'CO'}"> <spring:message
code="manage-flow.user.message.co"/>
</c:when>
<c:when test="${list.userType == 'RE'}"> <spring:message
code="manage-flow.user.message.re"/>
</c:when>
<c:when test="${list.userType == 'JU'}"> <spring:message
code="manage-flow.user.message.ju"/>
</c:when>
</c:choose>
</td>
<td class="moduleCheckbox">
<div>
<input type="checkbox" name="s-${idx}"
<c:if test="${list.availA}">checked</c:if>
<c:if test="${!formObject.edited}">disabled</c:if> />
</div>
</td>
<td class=" moduleCheckbox">
<div>
<input type="checkbox" name="se-${idx}"
<c:if test="${list.availP}">checked</c:if>
<c:if test="${!formObject.edited}">disabled</c:if> />
</div>
</td>
<td class="moduleCheckbox">
<div>
<input type="checkbox" name="ser-${idx}"
<c:if test="${list.availC}">checked</c:if>
<c:if test="${!formObject.edited}">disabled</c:if> />
</div>
</td>
</tr>
</c:forEach>
</tbody>
其中一些已被检查,而其他未检查(我正在从数据库中读取)并进行设置。
现在,我们遇到这样的情况。我有一个未选中的复选框,我单击它来检查他。然后单击“保存”按钮,formObject发送将保持不变(它完全相同,因为它来自数据库),因此我将使用相同的值更新数据库中的行...
你能帮我吗?
答案 0 :(得分:1)
对我有用的解决方案。
<tbody>
<c:forEach items="${formObject.userList}" var="list" varStatus="cnt">
<c:set var="idx" value="${cnt.index}"/>
<tr>
<td class="moduleCode">
<c:choose>
<c:when test="${list.userType == 'OW'}"> <spring:message
code="manageUser-flow.user.message.ow"/>
</c:when>
<c:when test="${list.userType == 'CO'}"> <spring:message
code="manageUser-flow.user.message.co"/>
</c:when>
<c:when test="${list.userType == 'RE'}"> <spring:message
code="manageUser-flow.user.message.re"/>
</c:when>
<c:when test="${list.userType == 'JU'}"> <spring:message
code="manageUser-flow.user.message.ju"/>
</c:when>
</c:choose>
</td>
<td class="moduleCheckbox">
<div>
<c:if test="${!formObject.edit}">
<form:checkbox path="userList[${idx}].availA"
cssClass="checkbox" value="true" disabled="true"/>
</c:if>
<c:if test="${formObject.edited}">
<form:checkbox path="userList[${idx}].availA"
cssClass="checkbox" value="true"/>
</c:if>
</div>
</td>
<td class=" moduleCheckbox">
<div>
<c:if test="${!formObject.edit}">
<form:checkbox path="userList[${idx}].availP"
cssClass="checkbox" value="true" disabled="true"/>
</c:if>
<c:if test="${formObject.edited}">
<form:checkbox path="userList[${idx}].availP"
cssClass="checkbox" value="true"/>
</c:if>
</div>
</td>
<td class="moduleCheckbox">
<div>
<c:if test="${!formObject.edit}">
<form:checkbox path="userList[${idx}].availC"
cssClass="checkbox" value="true" disabled="true"/>
</c:if>
<c:if test="${formObject.edited}">
<form:checkbox path="userList[${idx}].availC"
cssClass="checkbox" value="true"/>
</c:if>
</div>
</td>
</tr>
</c:forEach>
</tbody>