当支持 an 的 List 或 Array为空时,有没有办法让 MyFaces不打印以下内容?h:dataTable
<table>
<tbody id="itemsForm:itemsDataTable:tbody_element">
<tr>
<td></td>
</tr>
</tbody>
</table>
我怀疑打印一个空的 tbody 会更正确。可以以某种方式覆盖它吗?
根据XHTML 规范,这些元素是必需的。至少<table>
需要一个. 依次需要至少一个. <tr>
<tr>
<td>
<!ELEMENT table
(caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
<!ELEMENT caption %Inline;>
<!ELEMENT thead (tr)+>
<!ELEMENT tfoot (tr)+>
<!ELEMENT tbody (tr)+>
<!ELEMENT colgroup (col)*>
<!ELEMENT col EMPTY>
<!ELEMENT tr (th|td)+>
<!ELEMENT th %Flow;>
<!ELEMENT td %Flow;>
(+
代表一个或多个,*
代表零或多个,?
代表零或一)
最好的办法是在数据模型为空时完全隐藏表格。
<h:dataTable ... value="#{bean.items}" rendered="#{not empty bean.items}">
否则,您无法绕过自定义渲染器。