2015-02-13 5 views
0

Я хотел бы условно вынести компонент, как показано ниже:Как использовать II (или) в EL логическое выражение

rendered="#{att.attName != 'att1' or 'att2'}" 

Однако, это не сработало. Я попытался как or и ||, но он оценивает только левую руку или условия, так и в описанном выше случае он сравнивает только с "att1" не с "att2"

Если изменить порядок, то он сравнивает с "att2" не с "att1".

+1

Как бы вы сделать это в обычном коде Java? 'if (att.getAttName()! =" att1 "||" att2 ")' Это допустимый синтаксис? (игнорируя сравнительное сравнение) – BalusC

+0

Спасибо за объяснение – p27

ответ

2

Это должно быть то, что вам нужно

rendered="#{(att.attName != 'att1') and (att.attName != 'att2')}" 

(скобки не нужны, но я добавил их для удобства чтения)

+0

, но почему и нет? – p27

+0

Потому что вы не хотите, чтобы он был равен с 'att1', а также не с' att2'. В противном случае это всегда было бы «правдой». Логично, не так ли? Если вы действительно хотите OR, тогда используйте '# {! (Att.attName == 'att1' или att.attName == 'att2')}' – BalusC

+0

, поэтому в моем коде он всегда сравнивается с обоими значениями, если первое условие найдено true ? rendered = "# {att.attName! = 'att1' или 'att2'}" – p27

 Смежные вопросы

  • Нет связанных вопросов^_^