2012-02-08 14 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

関連する問題