来自字符串的jsf动态标记

时间:2010-07-31 12:28:31

标签: jsf dynamic tags

我想向用户显示一些数据

可以根据配置

通过不同的JSF标签向用户表示数据

例如,有时它可能由文本

表示

有时它可能由图形符号或偶数图表

表示

我也希望这种表示可以自定义。

我怎么能这样做?

1 个答案:

答案 0 :(得分: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()应该返回StringEnum

以下是如何在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'}" />