开发者

jsf dynamic tag from string

开发者 https://www.devze.com 2023-01-09 22:09 出处:网络
i want to show some data to the user the data maybe represented to user by different JSF tags based on a configuration

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 represe开发者_开发知识库ntation be customizable.

how could i do this?


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'}" />
0

精彩评论

暂无评论...
验证码 换一张
取 消