Reputation: 967
i want to show some data to the user
the data maybe represented to user by different JSF tags based on a configuration
for example some times it may represented by text
and sometimes it may represented by graphical symbol or even chart
also i want that this representation be customizable.
how could i do this?
Upvotes: 1
Views: 512
Reputation: 1109292
Make use of the rendered
attribute.
<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'}" />
Whenever the boolean expression in the rendered
attribute evaluates to true
, the component will be rendered (displayed), otherwise not (hidden). In the above example the Bean#getDataType()
should return a String
or an Enum
.
Here are another examples of how to use boolean expressions in 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'}" />
Upvotes: 3