Пример флажков JSF 2

Пример флажков JSF 2

В JSF тег<h:selectBooleanCheckbox /> используется для отображения одного элемента ввода HTML типа «checkbox».

//JSF...
 Remember Me

//HTML output...
 Remember Me

В то время как тег<h:selectManyCheckbox /> используется для визуализации набора элементов ввода HTML типа «флажок» и форматирования его с помощью тегов таблицы HTML и меток.

//JSF...

    
    
    


//HTML output...

Пример JSF 2.0

Вот пример JSF 2.0, демонстрирующий использование тегов «h:selectBooleanCheckbox» и «h:selectManyCheckbox».

h:selectBooleanCheckbox
Отображает единственный флажок и связывает его с логическим свойством.

h:selectManyCheckbox
Отображает группу флажков и заполняет данные разными способами:

  1. Жестко запрограммированное значение в теге «f:selectItem».

  2. Сгенерируйте значения с помощью массива и поместите его в тег «f:selectItems».

  3. Сгенерируйте значения с помощью карты и поместите ее в тег «f:selectItems».

  4. Сгенерируйте значения с помощью массива Object и поместите его в тег «f:selectItems», затем представьте значение с помощью атрибута «var».

1. Бэк

Базовый компонент для хранения представленных значений флажков.

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

Страница JSF для демонстрации использования тегов «h:selectBooleanCheckbox» и «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

При нажатии кнопки «Отправить», ссылка на страницу «result.xhtml» и отображает отправленные значения флажка.

jsf2-checkboxes-example-2

Как проверить значение флажка по умолчанию?

h:selectBooleanCheckbox
Значение тега «f: selectItem» проверяется, если для логического значения установлено значение true. В приведенном выше примере, если вы установите логическое свойство «RememberMe» в true:

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

    public boolean rememberMe = true;

    //...

Значение флажка «RememberMe» установлено по умолчанию.

h:selectManyCheckbox
Значения тега «f: selectItems» проверяются, если оно соответствует «значению» тега «h: selectManyCheckbox». В приведенном выше примере, если для favNumber3 установлено значение \ {«1 ″,« 3 »}:

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

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

    //...

Флажки «favNumber3», значения «Number 1» и «Number 3» установлены по умолчанию.

Скачать исходный код

Скачать -JSF-2-Checkboxes-Example.zip (10 КБ)