【发布时间】:2013-12-31 05:35:43
【问题描述】:
我有以下 JSF 代码,它从一个可能为空的 Bean 中呈现一个表
<h:dataTable value="#{recController.currentRecList}" var="rec" styleClass="display" id="rec">
<h:column>
<f:facet name="header">
<h:outputText value="#{msg['rec.name']}"/>
</f:facet>
#{rec.name}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msg['rec.notes']}"/>
</f:facet>
#{rec.notes}
</h:column>
</h:dataTable>
问题是上面的代码呈现了以下 HTML:
<tbody><tr><td></td></tr></tbody>
上面是错误的,因为它应该渲染:
<tbody><tr><td></td><td></td></tr></tbody>
列数是两而不是一!但更好的是它应该只渲染:
<tbody></tbody>
以便 DataTables js 脚本识别没有行并显示一个漂亮的“空表”。
目前DataTables js脚本返回错误:
DataTables warning: table id=rec - Requested unknown parameter '1' for row 0.
For more information about this error, please see http://datatables.net/tn/4
当然是因为它看到一行但列数不正确。
现在使用 Primefaces p:dataTable 会产生更多样板 html 代码,因为该表隐藏在多个 div 中,并且当返回一个空结果时,它会产生:
<tr class="ui-widget-content ui-datatable-empty-message">
<td class=" " colspan="4">No records found.</td>
</tr>
DataTables js (http://datatables.net/) 再次发现错误的列数。 有没有办法告诉primefaces在找不到结果时输出什么html代码?
【问题讨论】:
标签: jsf jakarta-ee jsf-2 primefaces