Как удалить строку в JSF dataTable

Как удалить строку в JSF dataTable

В этом примере улучшены предыдущиеJSF 2 dataTable example путем добавления функции «delete» для удаления строки в dataTable.

Удалить концепцию

Общая концепция довольно проста:

1. Назначьте ссылку «Удалить» в конце каждой строки.

//...




    Action

    

2. Если щелкнуть ссылку «Удалить», передайте текущий объект строки в deleteAction (). В методе deleteAction () просто удаляется текущий объект строки из «списка» и возвращается на текущую страницу.

public String deleteAction(Order order) {

    orderList.remove(order);
    return null;
}

пример

Пример JSF 2.0 для реализации вышеуказанной концепции удаления строки в dataTable.

1. Управляемый Боб

Управляемый бин с именем «порядок», не требующий пояснений.

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

Страница JSF для отображения данных с тегом dataTable и создания ссылки «удалить» для удаления записи строки.




    
        
    
    

        

JSF 2 dataTable example

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

3. Demo

Сверху вниз, показывает удаляемую запись строки.

jsf2-dataTable-Delete-Example-1

jsf2-dataTable-Delete-Example-2

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

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