JSF динамический тег из строки - PullRequest
0 голосов
/ 31 июля 2010

я хочу показать некоторые данные пользователю

данные могут быть представлены пользователю различными тегами JSF на основе конфигурации

например, иногда он может быть представлен текстом

и иногда он может быть представлен графическим символом или даже диаграммой

Также я хочу, чтобы это представление было настраиваемым.

как я могу это сделать?

1 Ответ

0 голосов
/ 31 июля 2010

Используйте атрибут 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'}" />
...