我的代码如下:
<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>
标签中需要它们。我怎么能这样做?
答案 0 :(得分:2)
由于您将<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 Tag Reference。
答案 1 :(得分:0)
您必须将代码更改为:
<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">
内,这与<th>
(表格标题)相对应,否则它们将打印在<td>
。
答案 2 :(得分: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>