Comment supprimer une ligne dans JSF dataTable

Comment supprimer une ligne dans le tableau de données JSF

Cet exemple améliore lesJSF 2 dataTable example précédents, en ajoutant une fonction «supprimer» pour supprimer la ligne dans dataTable.

Supprimer le concept

Le concept global est assez simple:

1. Attribuez un lien «Supprimer» à la fin de chaque ligne.

//...




    Action

    

2. Si vous cliquez sur le lien «Supprimer», passez l'objet ligne actuel dans deleteAction (). Dans la méthode deleteAction (), supprime simplement l'objet ligne actuel de la «liste» et retourne à la page actuelle.

public String deleteAction(Order order) {

    orderList.remove(order);
    return null;
}

Exemple

Un exemple JSF 2.0 pour implémenter le concept ci-dessus pour supprimer une ligne dans dataTable.

1. Bean géré

Un bean géré nommé «order», qui s'explique de lui-même.

package com.example;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="order")
@SessionScoped
public class OrderBean implements Serializable{

    private static final long serialVersionUID = 1L;

    private static final ArrayList orderList =
        new ArrayList(Arrays.asList(

        new Order("A0001", "Intel CPU",
                new BigDecimal("700.00"), 1),
        new Order("A0002", "Harddisk 10TB",
                new BigDecimal("500.00"), 2),
        new Order("A0003", "Dell Laptop",
                new BigDecimal("11600.00"), 8),
        new Order("A0004", "Samsung LCD",
                new BigDecimal("5200.00"), 3),
        new Order("A0005", "A4Tech Mouse",
                new BigDecimal("100.00"), 10)
    ));

    public ArrayList getOrderList() {

        return orderList;

    }

    public String deleteAction(Order order) {

        orderList.remove(order);
        return null;
    }

    public static class Order{

        String orderNo;
        String productName;
        BigDecimal price;
        int qty;

        public Order(String orderNo, String productName,
                BigDecimal price, int qty) {
            this.orderNo = orderNo;
            this.productName = productName;
            this.price = price;
            this.qty = qty;
        }

        //getter and setter methods
    }
}

2. Page JSF

Page JSF pour afficher les données avec la balise dataTable et créer un lien «supprimer» pour supprimer l'enregistrement de ligne.



    
        
    
    

        

JSF 2 dataTable example

Order No #{o.orderNo} Product Name #{o.productName} Price #{o.price} Quantity #{o.qty} Action

3. Demo

De haut en bas, affiche un enregistrement de ligne en cours de suppression.

jsf2-dataTable-Delete-Example-1

jsf2-dataTable-Delete-Example-2

Télécharger le code source

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