Сравнение строк с JSTL

У меня есть две строки, которые я должен сравнить, но даже если у них есть те же значения или отличающийся, это всегда вводит оператор...

<c:when test="#{bean.name1 != bean.name2}">
     fields that are supposed to appear _only_ when name1 is different from name2
</c:when>
10
задан Moon13 12 February 2010 в 20:12
поделиться

6 ответов

Проблема в том, что вы, вероятно, не заключили when в тег select.

если у вас есть:

    <c:choose>
    <c:when test="${bean.name1 != bean.name2}">
        fields that are supposed to appear _only_ when name1 is different from name2
    </c:when>
</c:choose>

Будет работать

7
ответ дан 4 December 2019 в 01:57
поделиться

Я заметил некоторую блеск при использовании c: if или c: choose и c: when внутри некоторых компонентов итерации jsf, таких как rich: datatable. Что такое полный контекст?

В качестве обходного решения мне обычно приходится обертывать вещи в a4j:outputPanel и соответственно задавать визуализированный атрибут.

0
ответ дан 4 December 2019 в 01:57
поделиться

Попробуйте это ...

<c:if test="${bean.name1 ne bean.name2}">
     fields that are supposed to appear _only_ when name1 is different from name2
</c:if>

ne = not equal

Также

# должно быть $

-1
ответ дан 4 December 2019 в 01:57
поделиться

Должно быть ?

<c:if test="#{bean.name1 != bean.name2}">
     // code
</c:if>

EDIT : должно быть внутри . Не могу спросить почему, таков синтаксис. Это все равно, что спросить, почему if не будет работать вместо switch в C/C++/Java. Это просто разные животные.

4
ответ дан 4 December 2019 в 01:57
поделиться

Должны ли поля, которые должны появляться только когда имя1 отличается от имени2

-1
ответ дан 4 December 2019 в 01:57
поделиться

Имеет ли значение, если вы сделаете это:

<c:when test="${bean.name1 != bean.name2}">
     fields that are supposed to appear _only_ when name1 is different from name2
</c:when>
0
ответ дан 4 December 2019 в 01:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: