So löschen Sie eine Zeile in der JSF-Datentabelle

So löschen Sie eine Zeile in der JSF-Datentabelle

In diesem Beispiel werden die vorherigenJSF 2 dataTable example erweitert, indem eine Löschfunktion hinzugefügt wird, um die Zeile in dataTable zu löschen.

Konzept löschen

Das Gesamtkonzept ist recht einfach:

1. Weisen Sie am Ende jeder Zeile einen Link "Löschen" zu.

//...




    Action

    

2. Wenn Sie auf den Link "Löschen" klicken, übergeben Sie das aktuelle Zeilenobjekt an deleteAction (). Entfernt in der Methode deleteAction () einfach das aktuelle Zeilenobjekt aus der "Liste" und kehrt zur aktuellen Seite zurück.

public String deleteAction(Order order) {

    orderList.remove(order);
    return null;
}

Beispiel

Ein JSF 2.0-Beispiel zur Implementierung des obigen Konzepts zum Löschen einer Zeile in dataTable.

1. Managed Bean

Eine verwaltete Bean namens "order", selbsterklärend.

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

JSF-Seite zum Anzeigen der Daten mit dataTable-Tag und Erstellen eines Links zum Löschen des Zeilendatensatzes.



    
        
    
    

        

JSF 2 dataTable example

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

3. Demo

Zeigt von oben nach unten einen Datensatz an, der gelöscht wird.

jsf2-dataTable-Delete-Example-1

jsf2-dataTable-Delete-Example-2

Quellcode herunterladen

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