JSF的dataTable如何生成类似如下的代码?要求是多行表头表尾,数据区中的每个单元格可以自定义类似bgcolor、style等属性。我可以把每个单元格的属性放入JavaBean,却不知道JSP如何写才能使每个单元格的属性不同?其中tbody中的每行数据是从JavaBean的List中取出的。<table border="1" width="100%">
    <thead>
        <tr>
            <th bgcolor="#111111">h1</th>
            <th bgcolor="#222222">h2</th>
        </tr>
        <tr>
            <th bgcolor="#333333">h3</th>
            <th bgcolor="#444444">h4</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td bgcolor="#111111">i1</td>
            <td bgcolor="#222222">v1</td>
        </tr>
        <tr>
            <td bgcolor="#333333">i2</td>
            <td bgcolor="#444444">v2</td>
        </tr>
        <tr>
            <td bgcolor="#555555">i3</td>
            <td bgcolor="#666666">v3</td>
        </tr>
        <tr>
            <td bgcolor="#777777">i4</td>
            <td bgcolor="#888888">v4</td>
        </tr>
        <tr>
            <td bgcolor="#999999">i5</td>
            <td bgcolor="#aaaaaa">v5</td>
        </tr>
        <tr>
            <td bgcolor="#bbbbbb">i6</td>
            <td bgcolor="#cccccc">v6</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <th bgcolor="#dddddd">f1</th>
            <th bgcolor="#eeeeee">f2</th>
        </tr>
        <tr>
            <th bgcolor="#ffffff">f3</th>
            <th bgcolor="#000000">f4</th>
        </tr>
    </tfoot>
</table>

解决方案 »

  1.   

    jsf1.2通过统一el,加入了对jstl的 foreach标记的支持,这有可能成为数据列表开发的一个有力补充。 
      

  2.   

    jsf的dataTable组件的实现简直太滥了,它就是jsf开发一大祸根!!
      

  3.   

    如果使用jsf1.1的dataTable的话,是不是就除了自定义JSF组件外没有办法了?
      

  4.   

    <t:dataTable id="table1" value="#{testColspanBean.lines}" var="line"
    rowClasses="standardTable_Row1,standardTable_Row2"
                 columnClasses="standardTable_Column,standardTable_ColumnCentered"
                 styleClass="standardTable" headerClass="standardTable_Header" footerClass="standardTable_Header">
    <t:column colspan="2">
    <f:facet name="header">
    <f:verbatim escape="false">head 1</f:verbatim>
    </f:facet>
    <f:facet name="footer">
    <f:verbatim escape="false">foot 1</f:verbatim>
    </f:facet>
    <h:outputText value="#{line.col1}" />
    </t:column>
    <t:column headercolspan="3">
    <f:facet name="header">
    <f:verbatim escape="false">head 2</f:verbatim>
    </f:facet>
    <f:facet name="footer">
    <f:verbatim escape="false">foot 2</f:verbatim>
    </f:facet>
    <h:outputText value="#{line.col2}" />
    </t:column>
    <t:column>
    <f:facet name="header">
    <f:verbatim escape="false">head 3</f:verbatim>
    </f:facet>
    <f:facet name="footer">
    <f:verbatim escape="false">foot 3</f:verbatim>
    </f:facet>
    <h:outputText value="#{line.col3}" />
    </t:column>
    <t:column footercolspan="2">
    <f:facet name="header">
    <f:verbatim escape="false">head 4</f:verbatim>
    </f:facet>
    <f:facet name="footer">
    <f:verbatim escape="false">foot 4</f:verbatim>
    </f:facet>
    <h:outputText value="#{line.col4}" />
    </t:column>
    <t:column>
    <f:facet name="header">
    <f:verbatim escape="false">head 5</f:verbatim>
    </f:facet>
    <f:facet name="footer">
    <f:verbatim escape="false">foot 5</f:verbatim>
    </f:facet>
    <h:outputText value="#{line.col5}" />
    </t:column>
    </t:dataTable>
      

  5.   

    4楼的就可以实现
    LZ可以找本介绍JSF基本标签和属性的书看一看
    一般都会介绍的 
      

  6.   

    4楼用的是非标准dataTable,当然可以实现。
    如果楼主也想实现的话,需要使用myfaces,金碟jsf或richfaces来实现