Ich habe eine HTML-Tabelle in der JSF-Webanwendung. Ich erzeuge Zeilen dynamisch mit <ui:repeat>
. Ich möchte einen Zähler für jede Zeile. Wie kann ich das bekommen? Irgendwelche Hilfe?
Ähnlich wie rowKeyVar in DatasTable von Rich Faces.
Sie können es nicht schön mit ui:repeat
machen, aber Sie können das mit h:dataTable
machen. Binden Sie die Komponente an eine UIData
-Eigenschaft in der Sicherung Bohne. Es hat eine getRowIndex()
Methode, die genau das tut, was Sie brauchen:
Hier füge ich 1
zu UIData#getRowIndex()
hinzu, weil es auf Null basiert. Sie können den Artikel Verwenden von Datentabellen nützlich finden, um mehr über Datatables zu erfahren.
Wenn Sie tatsächlich ein bisschen mehr Kontrolle über das Tabellenlayout haben wollen (insbesondere mit colspans / rowspans, die im echten JSF h:dataTable
-Tag fehlen), dann ist eine Alternative die Verwendung von JSTL c:forEach
-Tag, das ein varStatus
-Attribut hat, das Ihnen einen Punkt für die Schleife gibt Status.
Es gibt keinen Zähler für jede Zeile in ui: Wiederholen. Wie BalusC sagte, können Sie für h: Datatable gehen. Eine andere Idee ist indirekt, dass Sie eine zusätzliche Indexmethode in Bean für jedes Objekt in der Liste auf der Serverseite hinzufügen können und diese in jsf holen und manipulieren können.