代码之家  ›  专栏  ›  技术社区  ›  xross

JSP modyfing从复选框中收集值

jsp
  •  1
  • xross  · 技术社区  · 6 年前

    我完全不知道如何强制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>
    

    现在,我们遇到了这样的情况。我有一个未选中的复选框,我点击它来检查他。单击save按钮后,formobjectsend没有改变(它和DB中的完全相同),所以我用相同的值更新DB中的行。。。

    你能帮我吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   xross    6 年前

    解决方案,对我有用。

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