У меня есть две строки, которые я должен сравнить, но даже если у них есть те же значения или отличающийся, это всегда вводит оператор...
<c:when test="#{bean.name1 != bean.name2}">
fields that are supposed to appear _only_ when name1 is different from name2
</c:when>
Проблема в том, что вы, вероятно, не заключили 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>
Будет работать
Я заметил некоторую блеск при использовании c: if или c: choose и c: when внутри некоторых компонентов итерации jsf, таких как rich: datatable. Что такое полный контекст?
В качестве обходного решения мне обычно приходится обертывать вещи в a4j:outputPanel и соответственно задавать визуализированный атрибут.
Попробуйте это ...
<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
Также
# должно быть $
Должно быть ?
<c:if test="#{bean.name1 != bean.name2}">
// code
</c:if>
EDIT :
должно быть внутри
. Не могу спросить почему, таков синтаксис. Это все равно, что спросить, почему if
не будет работать вместо switch
в C/C++/Java. Это просто разные животные.
Должны ли поля, которые должны появляться только когда имя1 отличается от имени2
Имеет ли значение, если вы сделаете это:
<c:when test="${bean.name1 != bean.name2}">
fields that are supposed to appear _only_ when name1 is different from name2
</c:when>