当支持值为空时,有什么方法可以防止 h:datatable 创建空行?更具体地说:我有一组数据要显示在带有列标题的 h:dataTable 中的 3 列中。无论列表中是否有元素,都需要显示标题。这很好用,但是当列表中没有元素时,会在 tbody 中创建一个空行/单元格。有没有办法防止这种情况?
谢谢!
来自 backing bean 的示例方法。为了测试,我尝试返回 null 或空列表。两者的结果相同。
public List<LocationsDecorator> getLocations() {
return null;
}
JSF 片段:
<h:dataTable styleClass="locations" id="locations1"
var="nearestLoc" value="#{confirmationBean.locations}">
<h:column>
<!-- column header -->
<f:facet name="header">Address</f:facet>
<!-- row record -->
#{nearestLoc.adddress}
</h:column>
<h:column>
<!-- column header -->
<f:facet name="header">Distance</f:facet>
<!-- row record -->
#{nearestLoc.distance}
</h:column>
<h:column>
<!-- column header -->
<f:facet name="header">Hours of Operation</f:facet>
<!-- row record -->
<h:dataTable styleClass="locations" var="data"
value="#{nearestLoc.hoursOfOperation}">
<h:column>
#{data}
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
生成的 HTML(<tr><td></td></tr>
tbody 中的“”是问题):
<table id="contact:locations1" class="locations">
<thead>
<tr>
<th scope="col">Address</th>
<th scope="col">Distance</th>
<th scope="col">Hours of Operation</th>
</tr>
</thead>
<tbody>
<tr><td></td></tr></tbody>
</table>