2011-07-28 16 views
0

私は、このHTML出力を必要とする:JSF:各行にTHを追加する方法は?

<tr> 
    <th>...</th> 
    <td>...</td> 
    <td>...</td> 
</tr> 
<tr> 
    <th>...</th> 
    <td>...</td> 
    <td>...</td> 
</tr> 
etc... 

私は多くのJSFをしないと、ここでJSFは、私が働いているのです:ああ、私はどんなTHsとを与えるものではありません、ということ

<h:dataTable> 
    <h:column>...</h:column> 
    <h:column>...</h:column> 
    <h:column>...</h:column> 
</h:dataTable> 

わずか3 TDです。だから、私はこれを試した:

<h:dataTable> 
    <h:column><f:facet name="header">...</f:facet></h:column> 
    <h:column>...</h:column> 
    <h:column>...</h:column> 
</h:dataTable> 

しかし、それは私に最初の行にTHを与えるだけですべての後続の行。

いくつかのカスタムコンポーネントを記述しなくても、JSFとやり取りする方法はありますか?

答えて

2

各行に実際のTHがどれくらい重要なのですか?これがスタイリングのためだけのものであれば、h:dataTableの "columnClasses"を使って、最初の列に異なるCSSクラスを与えることができます。

<h:dataTable columnClasses="firstColumn"> 
    ... h:columns ... 
</h:dataTable> 

あなたは絶対に各行のTH要素を持たなければならない場合、私は時間でこれを行うための方法を考えることはできません:dataTableのを、しかし、あなたは< UIを使用することができます代わりに>を繰り返します。これはold-school < c:forEach >のように動作し、<テーブル>/<tr>をレンダリングします。例:

<ui:repeat value="#{bean.list}" var="row"> 
    <tr> 
    <th><h:outputText value="#{row.foo}"/></th> 
    <td><h:outputText value="#{row.bar}"/></td> 
    </tr> 
</ui:repeat> 

これが役立ちます。

関連する問題