Anzeigen der Zeilennummern von dataTable in JSF
JSF dataTable enthält keine Methode zum Anzeigen der aktuell ausgewählten Zeilennummern. Sie können es jedoch mit der Klassejavax.faces.model.DataModelhacken, die über eine MethodegetRowIndex()verfügt, um die aktuell ausgewählte Zeilennummer zurückzugeben.
JSF + DataModel
In diesem JSF 2.0-Beispiel wird gezeigt, wie Sie mit DataModel die aktuell ausgewählte Zeilennummer zurückgeben.
1. Managed Bean
Eine verwaltete Bean mit dem Namen "person" und zeigt die Verwendung von DataModel zum Speichern einer Liste des Personenobjekts.
package com.example;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ArrayDataModel;
import javax.faces.model.DataModel;
@ManagedBean(name="person")
@SessionScoped
public class PersonBean implements Serializable{
private static final long serialVersionUID = 1L;
private static final Person[] personList = new Person[]{
new Person("Person", "A", 10),
new Person("Person", "B", 20),
new Person("Person", "C", 30),
new Person("Person", "D", 40),
new Person("Person", "E", 50)
};
/* To get the row numbers, use dataModel instead
public Person[] getPersonList() {
return personList;
}
*/
private DataModel person = new ArrayDataModel(personList);
public DataModel getPersonList() {
return person;
}
public static class Person{
String firstName;
String lastName;
int age;
public Person(String firstName, String lastName, int age) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
//getter and setter methods
}
}
2. JSF Seite
JSP-Seite, auf der die Verwendung von DataModel "rowIndex" angezeigt wird, um 0-indiziert von der aktuell ausgewählten Zeilennummer zurückzugeben.
Display dataTable row numbers in JSF
No
#{person.personList.rowIndex + 1}
First Name
#{p.firstName}
Last Name
#{p.lastName}
Age
#{p.age}
3. Demo

Quellcode herunterladen
Laden Sie es herunter -JSF-2-DataTable-RowNumbers-Example.zip (10 KB)