JSF 2ドロップダウンボックスの例

JSF 2ドロップダウンボックスの例

JSFでは、<h:selectOneMenu />タグを使用してドロップダウンボックスをレンダリングします–「size=1」属性を持つHTML選択要素。

//JSF...

    
    
    


//HTML output...

h:selectOneMenuの例

h:selectOneMenu」タグを使用してドロップダウボックスをレンダリングし、3つの異なる方法でデータを入力することを示すJSF2.0の例:

  1. f:selectItem」タグにハードコードされた値。

  2. マップを使用して値を生成し、それを「f:selectItems」タグに入れます。

  3. オブジェクト配列を使用して値を生成し、それを「f:selectItems」タグに入れてから、「var」属性を使用して値を表します。

1. バッキングビーン

ドロップダウンボックス値のデータを保持および生成するバッキングBean。

package com.example;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="user")
@SessionScoped
public class UserBean implements Serializable{

    public String favCoffee1;
    public String favCoffee2;
    public String favCoffee3;

    public String getFavCoffee1() {
        return favCoffee1;
    }

    public void setFavCoffee1(String favCoffee1) {
        this.favCoffee1 = favCoffee1;
    }

    public String getFavCoffee2() {
        return favCoffee2;
    }

    public void setFavCoffee2(String favCoffee2) {
        this.favCoffee2 = favCoffee2;
    }

    public String getFavCoffee3() {
        return favCoffee3;
    }

    public void setFavCoffee3(String favCoffee3) {
        this.favCoffee3 = favCoffee3;
    }

    //Generated by Map
    private static Map coffee2Value;
    static{
        coffee2Value = new LinkedHashMap();
        coffee2Value.put("Coffee2 - Cream Latte", "Cream Latte"); //label, value
        coffee2Value.put("Coffee2 - Extreme Mocha", "Extreme Mocha");
        coffee2Value.put("Coffee2 - Buena Vista", "Buena Vista");
    }

    public Map getFavCoffee2Value() {
        return coffee2Value;
    }

    //Generated by Object array
    public static class Coffee{
        public String coffeeLabel;
        public String coffeeValue;

        public Coffee(String coffeeLabel, String coffeeValue){
            this.coffeeLabel = coffeeLabel;
            this.coffeeValue = coffeeValue;
        }

        public String getCoffeeLabel(){
            return coffeeLabel;
        }

        public String getCoffeeValue(){
            return coffeeValue;
        }

    }

    public Coffee[] coffee3List;

    public Coffee[] getFavCoffee3Value() {

        coffee3List = new Coffee[3];
        coffee3List[0] = new Coffee("Coffee3 - Cream Latte", "Cream Latte");
        coffee3List[1] = new Coffee("Coffee3 - Extreme Mocha", "Extreme Mocha");
        coffee3List[2] = new Coffee("Coffee3 - Buena Vista", "Buena Vista");

        return coffee3List;

    }

}

2. JSFページ

h:selectOneMenu」タグの使用を示すJSFページ。



    

        

JSF 2 dropdown box example

1. Hard-coded with "f:selectItem" :

2. Generated by Map :

3. Generated by Object array and iterate with var :

result.xhtml…




    

        

JSF 2 dropdown box example

result.xhtml

  1. user.favCoffee1 : #{user.favCoffee1}
  2. user.favCoffee2 : #{user.favCoffee2}
  3. user.favCoffee3 : #{user.favCoffee3}

3. Demo

jsf2-dropdown-example-1

「送信」ボタンをクリックすると、「result.xhtml」ページにリンクし、送信されたドロップダウンボックスの値を表示します。

f2-dropdown-example-2

ドロップダウンボックスの値を事前に選択する方法は?

h:selectOneMenu」タグの「値」と一致する場合は、「f:selectItems」タグの値が選択されます。 上記の例で、「favCoffee1」プロパティを「Extreme Mocha」に設定した場合:

@ManagedBean(name="user")
@SessionScoped
public class UserBean{

    public String favCoffee1 = "Extreme Mocha";

    //...

「favCoffee1」ドロップダウンボックスの値「Extreme Mocha」がデフォルトで選択されています。

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

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

参照