Comment afficher les numéros de ligne de dataTable dans JSF

Comment afficher les numéros de ligne dataTable dans JSF

JSF dataTable ne contient aucune méthode pour afficher les numéros de ligne actuellement sélectionnés. Cependant, vous pouvez le pirater avec la classejavax.faces.model.DataModel, qui a une méthodegetRowIndex() pour renvoyer le numéro de ligne actuellement sélectionné.

JSF + DataModel

Voici un exemple JSF 2.0 pour vous montrer comment utiliser DataModel pour renvoyer le numéro de ligne actuellement sélectionné.

1. Bean géré

Un bean géré nommé «personne», et montre l'utilisation de DataModel pour contenir une liste de l'objet personne.

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. Page JSF

Page JSP pour montrer l'utilisation de DataModel «rowIndex» pour renvoyer 0-indexé du numéro de ligne actuellement sélectionné.



    
        
    
    

        

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

Télécharger le code source

Téléchargez-le -JSF-2-DataTable-RowNumbers-Example.zip (10 Ko)