Используйте атрибут rendered
.
<h:outputText value="#{bean.value}" rendered="#{bean.datatype == 'text'}" />
<h:graphicImage value="#{bean.value}" rendered="#{bean.datatype == 'image'}" />
<x:someChart value="#{bean.value}" rendered="#{bean.datatype == 'chart'}" />
Всякий раз, когда логическое выражение в атрибуте rendered
оценивается как true
, компонент будет отображаться (отображаться), иначе нет (скрыто)).В приведенном выше примере Bean#getDataType()
должен возвращать String
или Enum
.
Вот еще один пример использования логических выражений в EL:
<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue > 10}" />
<h:someComponent rendered="#{bean.objectValue == null}" />
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" />
<h:someComponent rendered="#{!empty bean.collectionValue}" />
<h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" />
<h:someComponent rendered="#{bean.enumValue == 'FOO' || bean.enumValue == 'BAR'}" />