2011-07-28 4 views
0

мне нужен этот HTML вывод:JSF: как добавить TH в каждую строку?

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

Я не делаю много JSF и вот JSF я работаю с:

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

Это, увы, не дает мне никаких THS всего 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: повторить > вместо этого. Это будет работать как старая школа < 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> 

Надеюсь, это поможет!

Смежные вопросы