JSF表单复选框(CheckBox)示例
精华
小牛编辑
133浏览
2023-03-14
以下部分显示如何使用JSF标签创建HTML复选框。<h:selectBooleanCheckbox>
标签呈现类型为“checkbox
”的HTML输入元素。
以下JSF标签 -
<h:selectBooleanCheckbox value="Remember Me" id="chkRememberMe" />
被渲染成为以下HTML标签。
<input id="jsfForm1:chkRememberMe" type="checkbox"
name="jsfForm1:chkRememberMe" checked="checked" />
<h:selectBooleanCheckbox>
标签呈现一组类型为“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>
被渲染成为以下HTML标签。
<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>
<h:selectBooleanCheckbox>
单个复选框
以下是文件:index.xhtml
中的代码,它使用h:selectBooleanCheckbox
创建一个复选框 -
<?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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
>
<h:body>
<h:form>
<h2>1. Single checkbox</h2>
<h:selectBooleanCheckbox value="#{user.rememberMe}" /> Remember Me
<h:commandButton value="Submit" action="result" />
<h:commandButton value="Reset" type="reset" />
</h:form>
</h:body>
</html>
以下是文件:UserBean.java
中的代码 -
package com.yiibai;
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 boolean isRememberMe() {
return rememberMe;
}
public void setRememberMe(boolean rememberMe) {
this.rememberMe = rememberMe;
}
}
以下是文件: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:h="http://java.sun.com/jsf/html"
>
<h:body>
<h1>JSF 2 checkboxes example</h1>
<h2>result.xhtml</h2>
<ol>
<li>user.rememberMe : #{user.rememberMe}</li>
</ol>
</h:body>
</html>
硬编码复选框
以下是文件:index.xhtml
中的代码,它使用h:selectManyCheckbox
和f:selectItem
创建硬编码的复选框项。
<?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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
>
<h:body>
<h:form>
<h2>Mutiple checkboxes</h2>
1. Hard-coded with "f:selectItem" :
<h:selectManyCheckbox value="#{user.favNumber1}">
<f:selectItem itemValue="1" itemLabel="Number1 - 1" />
<f:selectItem itemValue="2" itemLabel="Number1 - 2" />
<f:selectItem itemValue="3" itemLabel="Number1 - 3" />
<f:selectItem itemValue="4" itemLabel="Number1 - 4" />
<f:selectItem itemValue="5" itemLabel="Number1 - 5" />
</h:selectManyCheckbox>
<br />
<h:commandButton value="Submit" action="result" />
<h:commandButton value="Reset" type="reset" />
</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:h="http://java.sun.com/jsf/html"
>
<h:body>
<h1>JSF 2 checkboxes example</h1>
<h2>result.xhtml</h2>
<ol>
<li>user.favNumber1 : #{user.favNumber1InString}</li>
</ol>
</h:body>
</html>
以下是文件:UserBean.java
中的代码 -
package com.yiibai;
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 String[] favNumber1;
public String[] getFavNumber1() {
return favNumber1;
}
public void setFavNumber1(String[] favNumber1) {
this.favNumber1 = favNumber1;
}
public String getFavNumber1InString() {
return Arrays.toString(favNumber1);
}
}
由数组生成的复选框
以下是文件: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:h="http://java.sun.com/jsf/html">
<h:body>
<h1>JSF 2 checkboxes example</h1>
<h2>result.xhtml</h2>
<ol>
<li>user.favNumber2 : #{user.favNumber2InString}</li>
</ol>
</h:body>
</html>
以下是文件:UserBean.java
中的代码,它定义一个getFavNumber2Value()
方法来返回一个硬编码的数组作为复选框项 -
package com.yiibai;
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 String[] favNumber2;
public String[] getFavNumber2() {
return favNumber2;
}
public void setFavNumber2(String[] favNumber2) {
this.favNumber2 = favNumber2;
}
//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);
}
}
以下是文件:index.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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<h:form>
<h2>Mutiple checkboxes</h2>
Generated by Array :
<h:selectManyCheckbox value="#{user.favNumber2}">
<f:selectItems value="#{user.favNumber2Value}" />
</h:selectManyCheckbox>
<br />
<h:commandButton value="Submit" action="result" />
<h:commandButton value="Reset" type="reset" />
</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:h="http://java.sun.com/jsf/html">
<h:body>
<h1>JSF 2 checkboxes example</h1>
<h2>result.xhtml</h2>
<ol>
<li>user.favNumber3 : #{user.favNumber3InString}</li>
</ol>
</h:body>
</html>
以下是文件:UserBean.java
中的代码 -
package com.yiibai;
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 String[] favNumber3;
public String[] getFavNumber3() {
return favNumber3;
}
public void setFavNumber3(String[] favNumber3) {
this.favNumber3 = favNumber3;
}
//Generated by Map
private static Map<String,Object> number3Value;
static{
number3Value = new LinkedHashMap<String,Object>();
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<String,Object> getFavNumber3Value() {
return number3Value;
}
public String getFavNumber3InString() {
return Arrays.toString(favNumber3);
}
}
以下是文件:index.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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
>
<h:body>
<h:form>
<h2>Mutiple checkboxes</h2>
Generated by Map :
<h:selectManyCheckbox value="#{user.favNumber3}">
<f:selectItems value="#{user.favNumber3Value}" />
</h:selectManyCheckbox>
<br />
<h:commandButton value="Submit" action="result" />
<h:commandButton value="Reset" type="reset" />
</h:form>
</h:body>
</html>
复选框多个复选项
以下是文件:UserBean.java
中的代码 -
package com.yiibai;
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 String[] favNumber4;
public String[] getFavNumber4() {
return favNumber4;
}
public void setFavNumber4(String[] favNumber4) {
this.favNumber4 = favNumber4;
}
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);
}
}
以下是文件:index.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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<h:form>
<h2>Mutiple checkboxes</h2>
Generated by Object with var :
<h:selectManyCheckbox value="#{user.favNumber4}">
<f:selectItems value="#{user.favNumber4Value}" var="n"
itemLabel="#{n.numberLabel}" itemValue="#{n.numberValue}" />
</h:selectManyCheckbox>
<br />
<h:commandButton value="Submit" action="result" />
<h:commandButton value="Reset" type="reset" />
</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:h="http://java.sun.com/jsf/html"
>
<h:body>
<p>user.favNumber4 : #{user.favNumber4InString}</p>
</h:body>
</html>