Java教程 第66页 JSF教程 – JSF Repeat示例 下面的代码显示了如何使用ui:repeat创建一个表。 例子 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="book") @SessionScoped public class UserBean implements Serializable{ private static final long serialVersionUID = 1L; private static final ArrayList<Book> bookList = new ArrayList<Book>(Arrays.asList( new Book("1", "CSS", new BigDecimal("711.00"), 1), new Book("2", "SQL", new BigDecimal("522.00"), 2), new Book("3", "Java", new BigDecimal("13333.00"), 8), new Book("4", "HTML", new BigDecimal("5244.00"), 3), new Book("5", "Web", new BigDecimal("441.00"), 10) )); public ArrayList<Book> getBookList() { return bookList; } public String deleteAction(Book book) { bookList.remove(book); return null; } public static class Book{ String bookNo; String productName; BigDecimal price; int qty; public Book(String bookNo, String productName, BigDecimal price, int qty) { this.bookNo = bookNo; this.productName = productName; this.price =...
2024-04-01
JSF教程 – JSF DataTable排序数据模型示例 以下代码显示如何使用DataModel对DataTable进行排序。 例子 以下代码来自demo.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" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:head> <h:outputStylesheet library="css" name="table-style.css" /> </h:head> <h:body> <h1>JSF 2 dataTable sorting example</h1> <h:form> <h:dataTable value="#{book.bookList}" var="o" styleClass="book-table" headerClass="book-table-header" rowClasses="book-table-odd-row,book-table-even-row"> <h:column> <f:facet name="header"> <h:commandLink action="#{book.sortByBookNo}"> Book No </h:commandLink> </f:facet> #{o.bookNo} </h:column> <h:column> <f:facet name="header"> Product Name </f:facet> #{o.productName} </h:column> <h:column> <f:facet name="header">Price</f:facet> #{o.price} </h:column> <h:column> <f:facet name="header">Quantity</f:facet> #{o.qty} </h:column> </h:dataTable> </h:form> </h:body> </html> 以下代码来自table-style.css。 .book-table-header{ bbook-bottom:1px solid #BBB; padding:16px; } .book-table-odd-row{ bbook-top:1px solid #BBB; } .book-table-even-row{ bbook-top:1px solid #BBB; } 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import java.math.BigDecimal; import java.util.Comparator; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.model.ArrayDataModel; import javax.faces.model.DataModel; import java.util.Arrays; import java.util.Comparator; import javax.faces.model.DataModel; @ManagedBean(name="book") @SessionScoped public class...
2024-04-01
JSF教程 – JSF DataTable排序示例 以下代码显示如何对DataTable进行排序。 例子 以下代码来自table-style.css。 .book-table-header{ bbook-bottom:1px solid #BBB; padding:16px; } .book-table-odd-row{ bbook-top:1px solid #BBB; } .book-table-even-row{ bbook-top:1px solid #BBB; } 以下代码来自demo.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" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:head> <h:outputStylesheet library="css" name="table-style.css" /> </h:head> <h:body> <h1>JSF 2 dataTable sorting example</h1> <h:form> <h:dataTable value="#{book.bookList}" var="o" styleClass="book-table" headerClass="book-table-header" rowClasses="book-table-odd-row,book-table-even-row" > <h:column> <f:facet name="header"> <h:commandLink action="#{book.sortByBookNo}"> Book No </h:commandLink> </f:facet> #{o.bookNo} </h:column> <h:column> <f:facet name="header"> Product Name </f:facet> #{o.productName} </h:column> <h:column> <f:facet name="header">Price</f:facet> #{o.price} </h:column> <h:column> <f:facet name="header">Quantity</f:facet> #{o.qty} </h:column> </h:dataTable> </h:form> </h:body> </html> 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="book") @SessionScoped public class UserBean...
2024-04-01
JSF教程 – JSF DataTable更新示例 以下代码显示如何更新DataTable。 例子 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="book") @SessionScoped public class UserBean implements Serializable{ private static final long serialVersionUID = 1L; private static final ArrayList<Book> bookList = new ArrayList<Book>(Arrays.asList( new Book("1", "CSS", new BigDecimal("722.22"), 1), new Book("2", "HTML", new BigDecimal("533.33"), 2), new Book("3", "Java", new BigDecimal("11444.44"), 8), new Book("4", "Javascript", new BigDecimal("5255.55"), 3), new Book("5", "SQL",new BigDecimal("166.66"), 10) )); public ArrayList<Book> getBookList() { return bookList; } public String saveAction() { //get all existing value but set "editable" to false for (Book book : bookList){ book.setEditable(false); } //return to current page return null; } public String editAction(Book book) { book.setEditable(true); return null; } public static class Book{...
2024-04-01
JSF教程 – JSF DataTable行号示例 以下代码显示如何向DataTable添加行号。 例子 以下代码来自demo.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" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <h:outputStylesheet library="css" name="table-style.css" /> </h:head> <h:body> <h:form> <h:dataTable value="#{book.bookList}" var="o" styleClass="book-table" headerClass="book-table-header" rowClasses="book-table-odd-row,book-table-even-row"> <h:column> <f:facet name="header">No</f:facet> #{book.bookList.rowIndex + 1} </h:column> <h:column> <f:facet name="header">Book No</f:facet>#{o.bookNo} </h:column> <h:column> <f:facet name="header">Product Name</f:facet>#{o.productName} </h:column> <h:column> <f:facet name="header">Price</f:facet>#{o.price} </h:column> <h:column> <f:facet name="header">Quantity</f:facet>#{o.qty} </h:column> </h:dataTable> <h3>Enter Book</h3> <table> <tr> <td>Book No :</td> <td><h:inputText size="20" value="#{book.bookNo}" /></td> </tr> <tr> <td>Product Name :</td> <td><h:inputText size="20" value="#{book.productName}" /></td> </tr> <tr> <td>Quantity :</td> <td><h:inputText size="20" value="#{book.price}" /></td> </tr> <tr> <td>Price :</td> <td><h:inputText size="20" value="#{book.qty}" /></td> </tr> </table> </h:form> </h:body> </html> 以下代码来自table-style.css。 .book-table-header{ bbook-bottom:1px solid #BBB; padding:16px; } .book-table-odd-row{ bbook-top:1px solid #BBB; } .book-table-even-row{ bbook-top:1px solid #BBB;...
2024-04-01
JSF教程 – JSF验证要求示例 以下代码显示如何根据需要标记字段。 例子 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="user") @SessionScoped public class UserBean implements Serializable{ String password; String confPassword; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getConfPassword() { return confPassword; } public void setConfPassword(String confPassword) { this.confPassword = confPassword; } } 以下代码来自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" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:body> <h:panelGrid columns="2"> Password : <h:outputText value="#{user.password}" /> Confirm Password : <h:outputText value="#{user.confPassword}" /> </h:panelGrid> </h:body> </html> 以下代码来自demo.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> <h:panelGrid columns="3"> Enter your password : <h:inputSecret id="password" value="#{user.password}"...
2024-04-01
JSF教程 – JSF验证双值范围示例 f:validateDoubleRange标记用于将值验证为浮点值范围。 以下代码显示如何使用f:validateLongRange标记 <f:validateDoubleRange minimum="1000.50" maximum="10000.50" /> 标签属性 属性 描述 minimum 最小双精度值在可选范围内 maximum 最大双精度值在可选范围内 例子 以下代码来自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" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:body> Salary : <h:outputText value="#{user.salary}" /> </h:body> </html> 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="user") @SessionScoped public class UserBean implements Serializable{ double salary; public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } } 以下代码来自demo.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> <h:panelGrid columns="3"> Enter a double value: <h:inputText id="salary" value="#{user.salary}" size="10" required="true" label="Salary" > <f:validateDoubleRange minimum="10.11" maximum="10000.99" /> </h:inputText> <h:message for="salary" style="color:red" /> </h:panelGrid> <h:commandButton...
2024-04-01
JSF教程 – JSF验证Int范围示例 f:validateLongRange标记用于验证特定范围内的长整型值。 以下代码显示如何使用f:validateLongRange标记 <f:validateLongRange minimum="5" maximum="200" /> 标签属性 属性 描述 minimum 最小长度值在可选范围内 maximum 最大长度值在可选范围内 例子 以下代码来自demo.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" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:body> <h:form> <h:panelGrid columns="3"> Enter your age : <h:inputText id="age" value="#{user.age}" size="10" required="true" label="Age" > <f:validateLongRange maximum="10" minimum="1" /> </h:inputText> <h:message for="age" style="color:red" /> </h:panelGrid> <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:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:body> Age : <h:outputText value="#{user.age}" /> </h:body> </html> 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="user") @SessionScoped public class UserBean implements Serializable{ int age; public int getAge() { return age; } public void...
2024-04-01
JSF教程 – JSF验证字符串长度示例 f:validateLength标记用于验证字符串值的长度。 我们可以使用f:validateLength标签,如下所示。 <f:validateLength minimum="5" maximum="8" /> 标签属性 属性 描述 minimum 最小字符数 maximum 最大字符数 例子 下面的代码来自UserBean.java。 package cn.w3cschool.common; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="user") @SessionScoped public class UserBean implements Serializable{ String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } 以下代码来自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" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:body> UserName : <h:outputText value="#{user.username}" /> </h:body> </html> 以下代码来自demo.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" xmlns:c="http://java.sun.com/jsp/jstl/core"> <h:body> <h:form> <h:panelGrid columns="3"> Enter UserName : <h:inputText id="username" value="#{user.username}" size="20" required="true" label="UserName" > <f:validateLength minimum="5" maximum="10" /> </h:inputText> <h:message for="username" style="color:red" /> </h:panelGrid> <h:commandButton...
2024-04-01
JSF教程 – JSF校验器标签 JSF有buildin验证器来验证其UI组件。 验证器标签可以验证字段的长度,输入类型可以是自定义对象。 我们必须在html节点中使用以下URI的名称空间来包括验证器标签。 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"> ... 验证程序标签 下表在JSF 2.0中有重要的Validator标签: 标签 描述 f:validateLength 验证字符串的长度 f:validateLongRange 验证数值的范围 f:validateDoubleRange 验证浮点值的范围 f:validateRegex 使用给定的正则表达式验证JSF组件。 Custom Validator 创建自定义验证器
2024-04-01