JSF dataTableに行を追加する方法

JSF dataTableに行を追加する方法

この例では、「add」関数を追加してdataTableに行を追加することにより、以前のdelete dataTable row exampleを拡張しています。

以下は、dataTableに行を追加する方法を示すJSF 2.0の例です。

1. マネージドBean

「order」という名前のマネージドBean、一目瞭然。

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;

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

    //getter and setter methods

    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 addAction() {

        Order order = new Order(this.orderNo, this.productName,
            this.price, this.qty);

        orderList.add(order);
        return null;
    }

    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ページ

dataTableタグを使用してデータを表示するJSFページ、および注文データを入力する入力フォーム。



    
        
    
    

        

JSF 2 dataTable example

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

Enter Order

Order No :
Product Name :
Quantity :
Price :

3. Demo

上から下に、追加される行レコードを示します。

jsf2-dataTable-Add-Example-1

jsf2-dataTable-Add-Example-2

jsf2-dataTable-Add-Example-3

ソースコードをダウンロード

ダウンロード–JSF-2-DataTable-Add-Example.zip(10KB)