Использование более логического выражения в отображаемом атрибуте - PullRequest
20 голосов
/ 22 августа 2011

У меня есть поле outputText, для которого я пишу условие в атрибуте rendered.Условие для сравнения длины строки с некоторым числовым значением.

<h:outputText id="emailaddress" 
    value ="#{subsAlertsHelper.personEmail.substring(0,20)}"
    rendered="#{subsAlertsHelper.personEmail.length() >20}" />

Если я использую == или != в rendered, это работает нормально.Но для большего и меньшего он не дает результата.Что может быть причиной этого?

Ответы [ 2 ]

47 голосов
/ 22 августа 2011

Вы должны использовать gt и lt операторы.

Извлечь JavaServer Faces Expression Language Intro от Sun / Oracle.Именно раздел Операторы.

3 голосов
/ 22 августа 2011

rendered принимает только выражение EL.

subsAlertsHelper.personEmail.length() неверно.

В объекте personEmail добавьте метод getLength(), который возвращает длину

public int getLength(){ return this. length();}

Изменить:

rendered="#{subsAlertsHelper.personEmail.length >20}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...