3

List または Array のバッキングが空の場合、 MyFacesが次のように出力しないようにする方法はありますか?h:dataTable

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

空の tbody を出力する方が正しいと思います。これは何とかオーバーライドできますか?

4

1 に答える 1

4

これらの要素は、 XHTML 仕様に従って必須です。には少なくとも 1 つ<table>が必要です。には少なくとも 1 つのが必要です。 <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;>

( は+1 つ以上を*表し、 は 0 以上を?表し、 は 0 または 1 を表します)

データ モデルが空の場合は、テーブルを完全に非表示にすることをお勧めします。

<h:dataTable ... value="#{bean.items}" rendered="#{not empty bean.items}">

そうしないと、カスタム レンダラーを回避できません。

于 2013-03-27T22:13:06.830 に答える