Ответ 1
Использовать атрибут rendered
. Он принимает логическое выражение. Вы можете оценить значение datatable внутри выражения с помощью ключевого слова EL empty
. Если он возвращает false
, весь компонент (и его дочерние элементы) не будет отображаться.
<h:outputText value="Table is empty!" rendered="#{empty bean.list}" />
<h:dataTable value="#{bean.list}" rendered="#{not empty bean.list}">
...
</h:dataTable>
В интересующем вас случае приведены следующие основные примеры того, как использовать свойства EL внутри атрибута rendered
:
<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue gt 10}" />
<h:someComponent rendered="#{bean.objectValue eq null}" />
<h:someComponent rendered="#{bean.stringValue ne 'someValue'}" />
<h:someComponent rendered="#{not empty bean.collectionValue}" />
<h:someComponent rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:someComponent rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />