2016-08-03 4 views
0

:-)mit Feder eval-Tag und rufen Sie die Java-Methode in Jsp ohne Scriptlet

Ich habe eine Frage. Ich möchte den Status auf meinem Kontrollkästchen überprüft, wenn myCode.id und checkedLists Code-Wert gleich.

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

Ich werfe myCodeList und checkedList von meinem Controller. mycodeList ist die Liste der VO für einige Codelisten. Und checkedList ist die Liste, was ich überprüft Wert von der Registrierungsansicht.

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

Es funktioniert wie ich will.

Aber mein Chef sagte mir, dass den Code einfacher ändern. Verwenden Sie das Spring-Eval-Tag und rufen Sie die Java-Methode, Es bedeutet, die Verwendung von Java-Listen-Methode in JSP enthalten.

Also habe ich so in JSP-Seite versucht. ${checkedList.contains('${myCode.codId }') }

Aber es funktioniert nicht. Was kann ich tun, um das Problem zu beheben?

Vielen Dank für Ihre Hilfe.

Haben Sie einen schönen Tag :-)

Antwort

0

ich die Art und Weise, sie zu lösen ändern.

In Controller Änderung der Liste der Objekt auf die Karte von Gegenständen.

Es bedeutet, ich kann den Code so schreiben.

Bevor.

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

Nach.

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

Es ist besser zu lesen als zuvor.

Verwandte Themen