Как отобразить номера строк dataTable в JSF

Как отобразить номера строк 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

jsf2-dataTable-RowNumbers-Example

Скачать исходный код

Скачать -JSF-2-DataTable-RowNumbers-Example.zip (10 КБ)