从支持bean </h:column>中设置<h:column>中的颜色

时间:2011-11-26 14:44:52

标签: css jsf facelets managed-bean

有什么办法可以在jsf中设置表数据中文本的颜色吗?我希望#{_component.displayName}具有不同的颜色,具体取决于支持bean方法的返回值。

    <h:dataTable styleClass="mytable" value="#{cart.items}" var="_component"> 

        <h:column>
            <f:facet name="header"><h3>Item</h3></f:facet>
            #{_component.displayName}
        </h:column>

    </h:dataTable>  

谢谢

1 个答案:

答案 0 :(得分:3)

如果要在<td>元素上设置样式类,则必须使用columnClasses的{​​{1}}属性:

<h:dataTable>

它接受一个逗号分隔的CSS类名字符串,这些字符串将按顺序应用于各个列。你甚至可以让它引用一个自动填充所需字符串的bean属性:

<h:dataTable columnClasses="col1,col2,col3">

然而,每个样式列将应用于整个列。如果您想独立设置单个单元格,最好将其包装在<h:dataTable columnClasses="#{bean.columnClasses}"> 中:

<h:outputText>

<h:outputText value="#{_component.displayName}" styleClass="#{_component.styleClass}" />

<h:outputText value="#{_component.displayName}" styleClass="#{bean.styleClass}" />

或者,如果单元格覆盖多个组件,请将其包裹在<h:outputText value="#{_component.displayName}" styleClass="#{bean.styleClass(component)}" /> 内,并在其上设置<h:panelGroup>