很多时候,在渲染一个dataTable的时候,要求table的第一行是序号(index),对于这种要求,很多JSF 实现没有提供,那么就需要我们自己提供了,方法是这样的:
在dataTable上绑定一个UIData对象,利用UIData对象的rowIndex属性,就可以得到当前行数据在列表中的位置了,不过一般要加一。
示例:
在dataTable上绑定一个UIData对象,利用UIData对象的rowIndex属性,就可以得到当前行数据在列表中的位置了,不过一般要加一。
示例:
页面绑定UIData:
- <h:dataTable value="#{Bean.items}" var="item" binding="#{Bean.table}">
- <h:column>
- <f:facet name="header"><h:outputText value="Index" />f:facet>
- <h:outputText value="#{Bean.table.rowIndex}"/>
- </h:column>
- .....
</h:dataTable>
ManagedBean:
- public class Bean {
- ///......
- private UIData table;
- public UIData getTable() {
- return table;
- }
- public void setTable(UIData table) {
- this.table = table;
- }
- ///.....
- }