So zeigen Sie dataTable-Reihennummern in JSF an

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

jsf2-dataTable-RowNumbers-Example

Quellcode herunterladen

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