Exemple de cases à cocher JSF 2

Exemple de cases à cocher JSF 2

Dans JSF, la balise<h:selectBooleanCheckbox /> est utilisée pour rendre un seul élément d'entrée HTML de type «checkbox».

//JSF...
 Remember Me

//HTML output...
 Remember Me

Alors que la balise<h:selectManyCheckbox /> est utilisée pour rendre un ensemble d'éléments d'entrée HTML de type «case à cocher», et le formater avec des balises de table et d'étiquette HTML.

//JSF...

    
    
    


//HTML output...

Exemple JSF 2.0

Voici un exemple JSF 2.0 pour illustrer l'utilisation des balises «h:selectBooleanCheckbox» et «h:selectManyCheckbox».

h:selectBooleanCheckbox
Rend une seule case à cocher et câble-la avec une propriété booléenne.

h:selectManyCheckbox
Rendez un groupe de cases à cocher et remplissez les données de différentes manières:

  1. Valeur codée en dur dans la balise «f:selectItem».

  2. Générez des valeurs avec un tableau et placez-le dans la balise «f:selectItems».

  3. Générez des valeurs avec une carte et placez-la dans la balise «f:selectItems».

  4. Générez des valeurs avec un tableau Object et placez-le dans la balise «f:selectItems», puis représentez la valeur avec l'attribut «var».

1. Backing Bean

Un bean de sauvegarde pour contenir les valeurs des cases à cocher soumises.

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. Page JSF

Une page JSF pour démontrer l'utilisation des balises «h:selectBooleanCheckbox» et «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

Lorsque vous cliquez sur le bouton «soumettre», créez un lien vers la page «result.xhtml» et affichez les valeurs des cases à cocher soumises.

jsf2-checkboxes-example-2

Comment vérifier la valeur de la case à cocher par défaut?

h:selectBooleanCheckbox
La valeur de la balise «f: selectItem» est vérifiée si la valeur booléenne est définie sur true. Dans l'exemple ci-dessus, si vous définissez la propriété booléenne «RememberMe» sur true:

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

    public boolean rememberMe = true;

    //...

La valeur de la case à cocher «RememberMe» est cochée par défaut.

h:selectManyCheckbox
Les valeurs de la balise «f: selectItems» sont vérifiées si elles correspondent à la «valeur» de la balise «h: selectManyCheckbox». Dans l'exemple ci-dessus, si vous définissez favNumber3 sur \ {"1 ″," 3 "}:

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

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

    //...

Les cases «favNumber3», les valeurs «Number 1» et «Number 3» sont cochées par défaut.

Télécharger le code source

Téléchargez-le -JSF-2-Checkboxes-Example.zip (10 Ko)