バッキング値が空のときに h:datatable が空の行を作成しないようにする方法はありますか? より具体的には、列ヘッダーを持つ h:dataTable の 3 列に表示されるデータのコレクションがあります。リストに要素があるかどうかに関係なく、常にスレッドを表示する必要があります。これは正常に機能しますが、リストに要素がない場合、tbody に単一の空の行/セルが作成されます。これを防ぐ方法はありますか?
ありがとう!
バッキング 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>