JSF - h:selectManyCheckbox



h:selectManyCheckbox 標籤渲染一組型別為“checkbox”的 HTML 輸入元素,並使用 HTML 表格和標籤對其進行格式化。

JSF 標籤

<h:selectManyCheckbox value = "#{userData.data}"> 
   <f:selectItem itemValue = "1" itemLabel = "Item 1" /> 
   <f:selectItem itemValue = "2" itemLabel = "Item 2" /> 
</h:selectManyCheckbox>

渲染輸出

<table>
   <tr>
      <td>
         <input name = "j_idt6:j_idt8" id = "j_idt6:j_idt8:0" value = "1" 
            type = "checkbox" checked = "checked" />
         <label for = "j_idt6:j_idt8:0" class = ""> Item 1</label>
      </td>
      
      <td>
         <input name = "j_idt6:j_idt8" id = "j_idt6:j_idt8:1" value = "2" 
            type = "checkbox" checked = "checked" />
         <label for = "j_idt6:j_idt8:1" class = ""> Item 2</label>
      </td>     
   </tr>
</table>

標籤屬性

序號 屬性及描述
1

id

元件識別符號

2

binding

對可在支援Bean中使用的元件的引用

3

rendered

布林值;false 抑制渲染

4

styleClass

層疊樣式表 (CSS) 類名

5

value

元件的值,通常是值繫結

6

valueChangeListener

對響應值更改的方法的繫結

7

converter

轉換器類名

8

validator

建立並附加到元件的驗證器的類名

9

required

布林值;如果為 true,則需要在關聯欄位中輸入值

10

accesskey

一個鍵,通常與系統定義的元鍵組合使用,用於將焦點賦予元素

11

accept

表單的內容型別的逗號分隔列表

12

accept-charset

表單的字元編碼的逗號或空格分隔列表。accept-charset 屬性使用名為 acceptcharset 的 JSF HTML 屬性指定。

13

alt

非文字元素(如影像或小程式)的替代文字

14

charset

連結資源的字元編碼

15

coords

形狀為矩形、圓形或多邊形的元素的座標

16

dir

文字方向。有效值為 ltr(從左到右)和 rtl(從右到左)

17

disabled

輸入元素或按鈕的停用狀態

18

hreflang

使用 href 屬性指定的資源的基語言;hreflang 只能與 href 一起使用。

19

lang

元素的屬性和文字的基語言

20

maxlength

文字欄位的最大字元數

21

readonly

輸入欄位的只讀狀態;在只讀欄位中可以選擇文字,但不能編輯

22

rel

當前文件和使用 href 屬性指定的連結之間的關係

23

rev

從使用 href 指定的錨點到當前文件的反向連結。屬性的值是連結型別的空格分隔列表

24

rows

文字區域中可見行的數量。h:dataTable 有一個 rows 屬性,但它不是 HTML 直通屬性。

25

shape

區域的形狀。有效值:default、rect、circle、poly。(default 表示整個區域)

26

style

內聯樣式資訊

27

tabindex

指定選項卡索引的數值

28

target

開啟文件的框架的名稱

29

title

用於輔助功能的標題,描述元素。可視瀏覽器通常為標題的值建立工具提示

30

type

連結的型別;例如,stylesheet

31

width

元素的寬度

32

onblur

元素失去焦點

33

onchange

元素的值更改

34

onclick

滑鼠按鈕在元素上單擊

35

ondblclick

滑鼠按鈕在元素上雙擊

36

onfocus

元素獲得焦點

37

onkeydown

按下鍵

38

onkeypress

按下鍵並隨後釋放

39

onkeyup

釋放鍵

40

onmousedown

滑鼠按鈕在元素上按下

41

onmousemove

滑鼠在元素上移動

42

onmouseout

滑鼠離開元素區域

43

onmouseover

滑鼠移動到元素上

44

onmouseup

釋放滑鼠按鈕

45

onreset

表單重置

46

onselect

在輸入欄位中選擇文字

47

disabledClass

停用元素的 CSS 類

48

enabledClass

啟用元素的 CSS 類

49

layout

元素佈局規範:lineDirection(水平)或 pageDirection(垂直)

50

border

元素的邊框

示例應用程式

讓我們建立一個測試 JSF 應用程式來測試上述標籤。

步驟 描述
1 按照JSF - 第一個應用程式章節中的說明,在com.tutorialspoint.test包下建立一個名為helloworld的專案。
2 如下所述修改home.xhtml。保持其餘檔案不變。
3 如下所述在 webapps 目錄中建立result.xhtml
4 如下所述在com.tutorialspoint.test包下建立一個名為UserData.java的託管Bean。
5 編譯並執行應用程式,以確保業務邏輯按要求工作。
6 最後,將應用程式構建為 war 檔案,並將其部署到 Apache Tomcat Web 伺服器。
7 使用如下最後一步中說明的適當 URL 啟動您的 Web 應用程式。

UserData.java

package com.tutorialspoint.test;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "userData", eager = true)
@SessionScoped
public class UserData implements Serializable {
   private static final long serialVersionUID = 1L;
   public String[] data = {"1","2","3"};
   
   public String[] getData() {
      return data;
   }

   public void setData(String[] data) {
      this.data = data;
   }
}

home.xhtml

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml"
   xmlns:f = "http://java.sun.com/jsf/core"    
   xmlns:h = "http://java.sun.com/jsf/html">
   
   <head>
      <title>JSF Tutorial!</title>
   </head>
   
   <h:body>
      <h2>h:selectManyCheckbox example</h2>
      <hr />
      
      <h:form>
         <h3>Mutiple checkboxes</h3> 
         <h:selectManyCheckbox value = "#{userData.data}">
            <f:selectItem itemValue = "1" itemLabel = "Item 1" />
            <f:selectItem itemValue = "2" itemLabel = "Item 2" />
            <f:selectItem itemValue = "3" itemLabel = "Item 3" />
            <f:selectItem itemValue = "4" itemLabel = "Item 4" />
            <f:selectItem itemValue = "5" itemLabel = "Item 5" />
         </h:selectManyCheckbox>
         <h:commandButton value = "Submit" action = "result" />
      </h:form> 		
   
   </h:body>
</html> 

result.xhtml

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml"
   xmlns:f = "http://java.sun.com/jsf/core"    
   xmlns:h = "http://java.sun.com/jsf/html"
   xmlns:ui = "http://java.sun.com/jsf/facelets">
   
   <h:body>
      <h2>Result</h2>
      <hr />
      
      <ui:repeat value = "#{userData.data}" var = "s">		
         #{s}
      </ui:repeat>   	
   </h:body>
</html> 

完成所有更改後,讓我們像在 JSF - 建立應用程式章節中一樣編譯和執行應用程式。如果您的應用程式一切正常,這將產生以下結果。

JSF h:selectManyCheckbox

選擇多個複選框並按下提交按鈕。我們選擇了四項。您將看到選擇的結果。

JSF h:selectManyCheckbox1
jsf_basic_tags.htm
廣告