2012-02-08 5 views
3

어떻게 그럴 수 있는지 이해할 수 없으므로 코드를 보여 드리겠습니다.jstl 조건이 작동하지 않습니다.

이것은 작동합니다. 예상대로, "PAIR"의 목록이 인쇄되어 있습니다 :이 작동하지 않습니다

<c:forEach var="element" items="${list}"> 
<c:choose> 
    <c:when test="true"> 
     <div>PAIR ${element}</div> 
    </c:when> 
    <c:otherwise> 
     <div>ODD ${element}</div> 
    </c:otherwise> 
</c:choose> 
</c:forEach> 

. 'ODD'만 인쇄 :

<c:forEach var="element" items="${list}"> 
<c:choose> 
    <c:when test="true == true"> 
     <div>PAIR ${element}</div> 
    </c:when> 
    <c:otherwise> 
     <div>ODD ${element}</div> 
    </c:otherwise> 
</c:choose> 
</c:forEach> 

누군가가 나를 도와 줄 수 있습니까?

답변

6

EL 문자가 누락되었습니다 : ${..}. test="${true == true}"을 사용하면 제대로 작동합니다.

첫 번째 예제는 true 문자열이 부울로 변환 될 때 true이므로 작동합니다. 구문 분석기는 Boolean.valueOf(..)을 사용하여 부울 값으로 전달한 문자열 값을 변환하려고 시도합니다. 그리고 을 사용하여 true == true 문자열을 변환하면 false이됩니다.

+0

오 ... 나는 그것이 매우 어리석은 문제라고 생각했습니다. 고맙습니다 – Fabio

관련 문제