JSF 2 Checkboxes Beispiel

JSF 2 Checkboxen Beispiel

In JSF wird das Tag<h:selectBooleanCheckbox /> verwendet, um ein einzelnes HTML-Eingabeelement vom Typ "checkbox" zu rendern.

//JSF...
 Remember Me

//HTML output...
 Remember Me

Während<h:selectManyCheckbox /> Tag verwendet wird, um eine Reihe von HTML-Eingabeelementen vom Typ "Kontrollkästchen" zu rendern und mit HTML-Tabellen- und Beschriftungs-Tags zu formatieren.

//JSF...

    
    
    


//HTML output...

JSF 2.0 Beispiel

Hier ist ein JSF 2.0-Beispiel, das die Verwendung der Tags "h:selectBooleanCheckbox" und "h:selectManyCheckbox" zeigt.

h:selectBooleanCheckbox
Rendern Sie ein einzelnes Kontrollkästchen und verbinden Sie es mit einer booleschen Eigenschaft.

h:selectManyCheckbox
Rendern Sie eine Gruppe von Kontrollkästchen und füllen Sie die Daten auf verschiedene Arten:

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

  2. Generieren Sie Werte mit einem Array und fügen Sie es in das Tag "f:selectItems" ein.

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

  4. 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, die die übergebenen Kontrollkästchenwerte enthält.

package com.example;

import java.util.Arrays;
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{

    public boolean rememberMe;
    public String[] favNumber1;
    public String[] favNumber2;
    public String[] favNumber3;
    public String[] favNumber4;

    //getter and setter methods...

    public String getFavNumber1InString() {
        return Arrays.toString(favNumber1);
    }

    //Generated by Array
    public String[] getFavNumber2Value() {

        favNumber2 = new String[5];
        favNumber2[0] = "Number2 - 1";
        favNumber2[1] = "Number2 - 2";
        favNumber2[2] = "Number2 - 3";
        favNumber2[3] = "Number2 - 4";
        favNumber2[4] = "Number2 - 5";

        return favNumber2;
    }

    public String getFavNumber2InString() {
        return Arrays.toString(favNumber2);
    }


    //Generated by Map
    private static Map number3Value;
    static{
        number3Value = new LinkedHashMap();
        number3Value.put("Number3 - 1", "1"); //label, value
        number3Value.put("Number3 - 2", "2");
        number3Value.put("Number3 - 3", "3");
        number3Value.put("Number3 - 4", "4");
        number3Value.put("Number3 - 5", "5");
    }

    public Map getFavNumber3Value() {
        return number3Value;
    }

    public String getFavNumber3InString() {
        return Arrays.toString(favNumber3);
    }

    //Generated by Object array
    public static class Number{
        public String numberLabel;
        public String numberValue;

        public Number(String numberLabel, String numberValue){
            this.numberLabel = numberLabel;
            this.numberValue = numberValue;
        }

        public String getNumberLabel(){
            return numberLabel;
        }

        public String getNumberValue(){
            return numberValue;
        }

    }

    public Number[] number4List;

    public Number[] getFavNumber4Value() {

        number4List = new Number[5];
        number4List[0] = new Number("Number4 - 1", "1");
        number4List[1] = new Number("Number4 - 2", "2");
        number4List[2] = new Number("Number4 - 3", "3");
        number4List[3] = new Number("Number4 - 4", "4");
        number4List[4] = new Number("Number4 - 5", "5");

        return number4List;
    }

    public String getFavNumber4InString() {
        return Arrays.toString(favNumber4);
    }

}

2. JSF Seite

Eine JSF-Seite zur Demonstration der Verwendung der Tags "h:selectBooleanCheckbox" und "h:selectManyCheckbox".



    

        

JSF 2 checkboxes example

1. Single checkbox

Remember Me

2. Mutiple checkboxes

1. Hard-coded with "f:selectItem" :
2. Generated by Array :
3. Generated by Map :
4. Generated by Object with var :

result.xhtml…




    

        

JSF 2 checkboxes example

result.xhtml

  1. user.rememberMe : #{user.rememberMe}
  2. user.favNumber1 : #{user.favNumber1InString}
  3. user.favNumber2 : #{user.favNumber2InString}
  4. user.favNumber3 : #{user.favNumber3InString}
  5. user.favNumber4 : #{user.favNumber4InString}

3. Demo

jsf2-checkboxes-example-1

Wenn Sie auf die Schaltfläche "Senden" klicken, stellen Sie einen Link zur Seite "result.xhtml" her und zeigen Sie die gesendeten Kontrollkästchenwerte an.

jsf2-checkboxes-example-2

Wie wird der Wert des Kontrollkästchens standardmäßig aktiviert?

h:selectBooleanCheckbox
Der Wert des Tags "f: selectItem" wird überprüft, wenn der boolesche Wert auf "true" gesetzt ist. Wenn Sie im obigen Beispiel die boolesche Eigenschaft "rememberMe" auf "true" setzen, geschieht Folgendes:

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

    public boolean rememberMe = true;

    //...

Das Kontrollkästchen "rememberMe" ist standardmäßig aktiviert.

h:selectManyCheckbox
Die Werte des Tags "f: selectItems" werden überprüft, wenn sie mit dem "Wert" des Tags "h: selectManyCheckbox" übereinstimmen. Wenn Sie im obigen Beispiel favNumber3 auf \ {"1", "3"} setzen:

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

    public String[] favNumber3 = {"1","3"};

    //...

Die Kontrollkästchen "favNumber3", "Number 1" und "Number 3" sind standardmäßig aktiviert.

Quellcode herunterladen

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