JSF 2-Listbox-Beispiel

JSF 2 Listbox Beispiel

In JSF wird das Tag<h:selectOneListbox /> verwendet, um ein einzelnes Auswahllistenfeld - HTML-Auswahlelement mit dem Attribut "size" - zu rendern.

//JSF...

    
    
    


//HTML output...

h: selectOneListbox-Beispiel

Ein JSF 2.0-Beispiel, das die Verwendung des Tags "h:selectOneListbox" zum Rendern einer einzelnen Auswahlliste und zum Auffüllen der Daten auf drei verschiedene Arten zeigt:

  1. Fest codierter Wert im Tag "f:selectItem".

  2. Generieren Sie Werte mit einer Map und fügen Sie sie in das Tag "f:selectItems" ein.

  3. Generieren Sie Werte mit einem Object-Array und fügen Sie es in das Tag "f:selectItems" ein. Stellen Sie dann den Wert mit dem Attribut "var" dar.

1. Stützbohne

Eine Backing-Bean zum Speichern und Generieren von Daten für Listbox-Werte.

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 favYear1;
    public String favYear2;
    public String favYear3;

    //getter and setter methods

    //Generated by Map
    private static Map year2Value;
    static{
        year2Value = new LinkedHashMap();
        year2Value.put("Year2 - 2000", "2000"); //label, value
        year2Value.put("Year2 - 2010", "2010");
        year2Value.put("Year2 - 2020", "2020");
    }

    public Map getFavYear2Value() {
        return year2Value;
    }

    //Generated by Object array
    public static class Year{
        public String yearLabel;
        public String yearValue;

        public Year(String yearLabel, String yearValue){
            this.yearLabel = yearLabel;
            this.yearValue = yearValue;
        }

        public String getYearLabel(){
            return yearLabel;
        }

        public String getYearValue(){
            return yearValue;
        }

    }

    public Year[] year3List;

    public Year[] getFavYear3Value() {

        year3List = new Year[3];
        year3List[0] = new Year("Year3 - 2000", "2000");
        year3List[1] = new Year("Year3 - 2010", "2010");
        year3List[2] = new Year("Year3 - 2020", "2020");

        return year3List;
    }

}

2. JSF Seite

Eine JSF-Seite zur Demonstration der Verwendung des Tags "h:selectOneListbox".




    

        

JSF 2 listbox example

1. Hard-coded with "f:selectItem" :
2. Generated by Map :
3. Generated by Object array and iterate with var :

result.xhtml…





    

        

JSF 2 listbox example

result.xhtml

  1. user.favYear1 : #{user.favYear1}
  2. user.favYear2 : #{user.favYear2}
  3. user.favYear3 : #{user.favYear3}

3. Demo

jsf2-listbox-example-1

Wenn Sie auf die Schaltfläche "Senden" klicken, verknüpfen Sie die Seite "result.xhtml" und zeigen Sie die gesendeten Listbox-Werte an.

jsf2-listbox-example-2

Wie wähle ich einen Listbox-Wert vor?

Der Wert des Tags "f:selectItems" wird ausgewählt, wenn er mit dem "Wert" des Tags "h:selectOneListbox" übereinstimmt. Im obigen Beispiel, wenn Sie die Eigenschaft favYear1 auf "2010" setzen:

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

    public String favYear1 = "2010";

    //...

Das Listenfeld "favYear1" mit dem Wert "2010" ist standardmäßig ausgewählt.

Quellcode herunterladen

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

Referenz