2016-08-03 3 views
0

:-)스프링 eval 태그를 사용하고 jsp에서 자바 스크립트를 호출하지 않고

나는 하나의 질문이 있습니다. 내 체크 박스에서 상태를 확인하고 싶습니다. myCode.id와 checkedLists 코드 값이 같을 때.

<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 및 checkedList를 던집니다. mycodeList는 일부 코드 목록의 VO 목록입니다. 그리고 checkedList는 내가 registrated view에서 값을 체크 한 목록입니다.

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

그것은 내가 원하는 것처럼 작동합니다.

하지만 내 상사가 코드를 변경하는 것이 더 간단하다고 말했습니다. 스프링 eval 태그를 사용하여 Java 메소드, 을 호출하십시오. 이는 JSP에 포함 된 Java 목록 메소드 사용을 의미합니다.

그래서이 JSP 페이지에서 시도했습니다. ${checkedList.contains('${myCode.codId }') }

하지만 작동하지 않습니다. 문제를 해결하려면 어떻게해야합니까?

도움 주셔서 감사합니다.

좋은 하루 보내십시오 :-)

답변

0

나는 그것을 해결하는 방법을 변경합니다. 컨트롤러에서

, 변화 오브젝트의지도에 객체의 목록입니다.

의미,이 코드를 작성할 수 있습니다.

이전.

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

이전보다 더 읽기 좋습니다.