有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用SpringEval标记并在jsp中调用java方法而不使用scriptlet

:-)

我有一个问题。 我想在myCode时检查复选框的状态。id和CheckedList代码值相同

<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
  <tr>
    <th>
      <input type="checkbox" id="myCode${status.index}" name="myCodes" />
    </th>
    <td>
      <textarea id="myContent${status.index}" name="myContents"></textarea>
    </td>
</th>
</tr>
</c:forEach>

我从我的控制器中删除列表和检查列表。 mycodeList是一些代码列表的VO列表。 checkedList是我从regist视图中检查值的列表

<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
  <c:set var="myCodeFlag" value="false"
  <tr>
    <th>
      <input type="checkbox" id="myCode${status.index}" name="myCodes" 
        <c:forEach var="checkedCode" items="${checkedList}">
        <c:if test="${checkedCode.codId eq myCode.codId}">
        checked="checked"
        </c:if>
        </c:forEach>
      />
    </th>
    <td>
      <textarea id="myContent${status.index}" name="myContents"
<c:if test="${myCodeFlag eq flase}">disabeld="disabled"</c:if>>
      <c:forEach var="checkedCode" items="${checkedList}">
        <c:if test="${checkedCode.codId eq myCode.codId}">
        ${checkedCode.content}
        </c:if>
      </c:forEach>
</textarea>
    </td>
</th>
</tr>
</c:forEach>

就像我想要的那样

但是我的老板告诉我更改代码更简单。 使用spring eval标记并调用java方法, 这意味着使用JSP中包含的Java列表方法

所以我试着在JSP页面中这样做。 ${checkedList.contains('${myCode.codId }') }

但它不起作用。 我能做些什么来解决这个问题

谢谢你的帮助

祝你今天愉快:-)


共 (1) 个答案

  1. # 1 楼答案

    我改变了解决问题的方法

    在控制器中, 将对象列表更改为对象地图

    这意味着,我可以这样写代码

    之前

    <c:forEach var="myCode" items="${myCodeList }" varStatus="status">
      <c:set var="myCodeFlag" value="false"
      <tr>
        <th>
          <input type="checkbox" id="myCode${status.index}" name="myCodes" 
            <c:forEach var="checkedCode" items="${checkedList}">
            <c:if test="${checkedCode.codId eq myCode.codId}">
            checked="checked"
            </c:if>
            </c:forEach>
          />
        </th>
        <td>
          <textarea id="myContent${status.index}" name="myContents"
    <c:if test="${myCodeFlag eq flase}">disabeld="disabled"</c:if>>
          <c:forEach var="checkedCode" items="${checkedList}">
            <c:if test="${checkedCode.codId eq myCode.codId}">
            ${checkedCode.content}
            </c:if>
          </c:forEach>
    </textarea>
        </td>
    </th>
    </tr>
    </c:forEach>
    

    之后

        <textarea id="myContent${status.index}" name="myContents"
        <c:if test="${checkedCodeMap[checkCode.codValue].category.codId ne myCode.codId}">disabeld="disabled"</c:if>>
              <c:if test="${checkedCodeMap[checkCode.codValue].category.codId ne myCode.codId}">
    ${checkedCodeMap[checkCode.codValue].content}
              </c:if>
        </textarea>
    

    读书比以前好多了