3

当支持 an 的 List 或 Array为空时,有没有办法让 MyFaces打印以下内容?h:dataTable

<table>
    <tbody id="itemsForm:itemsDataTable:tbody_element">
        <tr>
            <td></td>
        </tr>
    </tbody>
</table>

我怀疑打印一个空的 tbody 会更正确。可以以某种方式覆盖它吗?

4

1 回答 1

4

根据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}">

否则,您无法绕过自定义渲染器。

于 2013-03-27T22:13:06.830 回答