Как отобразить номера строк dataTable в JSF
Таблица данных JSF не содержит методов для отображения выбранных в данный момент номеров строк. Однако вы можете взломать его с помощью классаjavax.faces.model.DataModel, который имеет методgetRowIndex() для возврата текущего выбранного номера строки.
JSF + DataModel
Вот пример JSF 2.0, чтобы показать вам, как использовать DataModel для возврата текущего выбранного номера строки.
1. Управляемый Боб
Управляемый bean-компонент с именем person и демонстрирует использование DataModel для хранения списка объекта person.
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
Страница JSP, чтобы показать использование DataModel «rowIndex» для возврата с индексом 0 текущего выбранного номера строки.
Display dataTable row numbers in JSF
No
#{person.personList.rowIndex + 1}
First Name
#{p.firstName}
Last Name
#{p.lastName}
Age
#{p.age}
3. Demo

Скачать исходный код
Скачать -JSF-2-DataTable-RowNumbers-Example.zip (10 КБ)