html表格行的行计数器

html表格行的行计数器,html,jsf,richfaces,jstl,Html,Jsf,Richfaces,Jstl,我在JSFWeb应用程序中有HTML表。我正在使用动态生成行。我每行要一个柜台。我怎么能得到这个?有什么帮助吗 与rich faces dataTable中的rowKeyVar类似。使用ui:repeat无法很好地完成此操作,但可以使用h:dataTable完成此操作。将组件绑定到支持bean中的属性。它有一种方法,可以完全满足您的需要: <h:dataTable binding="#{bean.table}" value="#{bean.list}" var="item">

我在JSFWeb应用程序中有HTML表。我正在使用
动态生成行。我每行要一个柜台。我怎么能得到这个?有什么帮助吗


与rich faces dataTable中的rowKeyVar类似。

使用
ui:repeat
无法很好地完成此操作,但可以使用
h:dataTable
完成此操作。将组件绑定到支持bean中的属性。它有一种方法,可以完全满足您的需要:

<h:dataTable binding="#{bean.table}" value="#{bean.list}" var="item">
    <h:column><h:outputText value="#{bean.table.rowIndex + 1}" /></h:column>
    <h:column><h:outputText value="#{item.someProperty}" /></h:column>
    <h:column><h:outputText value="#{item.otherProperty}" /></h:column>
</h:dataTable>

ui中的每一行都没有计数器:重复。正如BalusC所说,您可以选择h:datatable。另一个想法是,您可以间接地在bean中为服务器端列表中的每个对象添加一个额外的索引方法,并在jsf中获得该方法并对其进行操作。

因为您使用的是richfaces,所以可以使用它的迭代标记(
),这比使用
更合适,这就像是


从Facelets 2.0开始,现在可以使用
varStatus

<ui:repeat varStatus="status" var="user" value="#{collection}">
     #{status.index}
</ui:repeat>

#{status.index}
一个坏主意(或好主意)是使用JavaScript来实现这一目的

<script>
    var numberOfIndex = 0;
</script>
<ui:repeat value="#{modelBean.listUser}" var="item">
    <tr>
            <td><script>numberOfIndex -=-1;document.write(numberOfIndex);</script></td>
        <td>${item.id}</td>
        <td>${item.name}</td>
    </tr>
</ui:repeat>

var numberOfIndex=0;
numberOfIndex-=-1;文件。写入(编号索引);
${item.id}
${item.name}

我将尝试第二种方法。c:forEach。感谢您,
c:forEach
的主要缺点是无法轻松使用表中的输入组件。使用
h:dataTable
可以轻松创建一个可编辑的dataTable,JSF将完全自行管理所有数据的收集和更新。
<ui:repeat varStatus="status" var="user" value="#{collection}">
     #{status.index}
</ui:repeat>
<script>
    var numberOfIndex = 0;
</script>
<ui:repeat value="#{modelBean.listUser}" var="item">
    <tr>
            <td><script>numberOfIndex -=-1;document.write(numberOfIndex);</script></td>
        <td>${item.id}</td>
        <td>${item.name}</td>
    </tr>
</ui:repeat>