Обновление сообщения при обработке метода, запускаемого тегом «value» в dataTable - PullRequest
0 голосов
/ 03 ноября 2010

У меня есть страница с данными Tomahawk. В его теге «value» я вызываю метод, который получает список из некоторого EJB-компонента, и если он становится пустым, мне нужно отобразить какое-то сообщение на странице. Логика работает, она выполняет созданный мною метод для отображения сообщения на экране, но не отображает сообщение на странице. Боюсь, это как-то связано с жизненным циклом JSF. Есть ли обходной путь, который я могу сделать в этом случае?

Заранее спасибо.

1 Ответ

1 голос
/ 03 ноября 2010

Обычный подход заключается в использовании атрибута rendered.

<h:outputText value="List is empty" rendered="#{empty bean.list}" />
<t:dataTable value="#{bean.list}" rendered="#{not empty bean.list}">
    ...
</t:dataTable>

Ключевое слово empty EL будет оценивать true, когда bean.list пусто или null.

Тем не менее, выполнение EJB-логики в геттере - довольно плохая идея.Геттеры предназначены только для возврата данных и могут вызываться более одного раза в жизни бина.Скорее делайте EJB-вещи в методе @PostConstruct бина.

...