Использование более логического выражения в атрибуте rendered

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

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

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

Ответы

Ответ 1

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

Откроется JavaServer Faces Expression Language Intro от Sun/Oracle. Именно раздел "Операторы".

Ответ 2

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

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

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

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

Изменить:

rendered="#{subsAlertsHelper.personEmail.length >20}"