如何将ID属性添加到h:datatable的头文件中

时间:2016-02-03 05:30:03

标签: jsf datatable myfaces facet

这是myfaces中数据表的代码片段。

<h:dataTable class="pretty" value="#{someValue}" >
    <h:column>
        <f:facet name="header">
            <h:outputText value="Name"/>
         </f:facet>
    </h:column>
    <h:column>
        <f:facet name="header">
             <h:outputText value="Outstanding"/>
        </f:facet>
    </h:column>       
</h:dataTable> 

这会生成带

的html
<th></th> 

表格。 我正在尝试将id和标题设置为如下标签:

<th id="value" headers="header value">

但不确定如何在myfaces f:facet中执行此操作,因为它只提供要与其他一些值一起设置的名称。任何有关将标识和标题设置为th标记的帮助都将受到高度赞赏。

谢谢, Madhu

2 个答案:

答案 0 :(得分:0)

通过创建扩展org.apache.myfaces.renderkit.html.HtmlTableRenderer的自定义渲染器来解决此问题。修改了函数以添加额外的属性:protected void renderColumnHeaderCell(FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent, UIComponent facet, String headerStyleClass, int colspan) throws IOException

然后在faces-config.xml中添加配置以指向我们的类。

<render-kit> <renderer> <component-family>javax.faces.Data</component-family> <renderer-type>javax.faces.Table</renderer-type> <renderer-class>OurClass</renderer-class> </renderer> </render-kit>

答案 1 :(得分:-1)

没有使用f:facet还有另一种方法。这是一个链接 How to add specific attributes to JSF datatable header