JSTL условие не работает - PullRequest
       14

JSTL условие не работает

3 голосов
/ 08 февраля 2012

Я не могу понять, как это возможно, поэтому я просто покажу код.

Это работает.Как и ожидалось, печатается список «ПАРА»:

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

Кто-нибудь может мне помочь?

1 Ответ

6 голосов
/ 08 февраля 2012

Вам не хватает литерала EL: ${..}.Используйте test="${true == true}", и оно будет работать.

Первый пример работает, потому что строка true при преобразовании в логическое значение равна true.Парсер пытается преобразовать передаваемое вами строковое значение в логическое значение, используя Boolean.valueOf(..).И преобразование строки true == true с использованием Boolean.valueOf(..) дает вам false.

...