2010-07-31 6 views
0

я хочу показать некоторые данные пользователяJSF динамический тег из строки

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

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

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

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

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

ответ

0

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

спасибо за Ваш ответ. кажется, что это будет работа. но как я могу сделать его настраиваемым? Я имею в виду, что чтение имени тега и их настройки из некоторой конфигурации во время выполнения? – arash

Смежные вопросы