0

我有以下代码:

<h:dataTable class="pretty" value="#{ftManagedBean.ftDataModel}" >
    <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>

但它会在<th></th>标签之间打印名称和杰出。为什么?我需要它们在<td></td>标签中。我怎样才能做到这一点?

4

3 回答 3

3

名称和杰出最终出现在<th>元素中,因为您将它们放置在<f:facet name="header">标签中。删除它们,它们将被输出到<td>标签。

<h:dataTable class="pretty" value="#{ftManagedBean.ftDataModel}" >
    <h:column>
        <h:outputText value="Name"/>
    </h:column>
    <h:column>
        <h:outputText value="Outstanding"/>
    </h:column>       
</h:dataTable>

有关创建表的示例,请参阅JSF HTML 标记参考。

于 2013-03-24T19:34:04.160 回答
1

您必须将代码更改为:

<h:dataTable class="pretty" value="#{ftManagedBean.ftDataModel}" >
    <h:column>
        <h:outputText value="Name"/>
    </h:column>
    <h:column>
        <h:outputText value="Outstanding"/>
    </h:column>       
</h:dataTable>

如果将输出文本包装在<f:facet name="header">this 对应的<th>(表头)中,否则它们将打印在<td>.

于 2013-03-24T19:37:15.703 回答
0

我试试这个解决方案,没问题。(http://www.coderanch.com/t/431222/JSF/java/dynamically-set-panel-header-condition

    <rich:dataGrid value="#{myMB.student.list}" rendered="#{!empty myMB.student and !empty myMB.student.list}" var="st" rowKeyVar="row">
        <rich:panel>                                            
            <f:facet name="header">
            <h:panelGroup id="panelHeader">
                <h:outputText value="Just one student" id="header1" required="true" rendered="#{!myMB.manyStudents}"/>
                <h:outputText value="#{row+1}º Student"  id="header2" required="true"  rendered="#{myMB.manyStudents}"/>
                </h:panelGroup>                                 
            </f:facet>
    <rich:panel>

于 2014-09-10T13:58:52.080 回答