JavaServer Faces提供了一组转换器。你可以使用它来转换组件数据。转换的目的是从Servlet API中获取基于String的数据, 并将其转换为强类型的Java对象。
javax.faces.convert包包含所有标准转换器。转换器是根据组件值所指向的EL表达式的类型隐式分配的。你还可以通过转换器ID访问这些转换器。下表显示了转换器类及其关联的转换器ID。
JSF转换器
类 | 转换器ID |
---|---|
BigDecimalConverter | javax.faces.BigDecimal |
BigIntegerConverter | javax.faces.BigInteger |
BooleanConverter | javax.faces.Boolean |
ByteConverter | javax.faces.Byte |
CharacterConverter | javax.faces.Character |
DateTimeConverter | javax.faces.Datetime |
DoubleConverter | javax.faces.Double |
EnumConverter | javax.faces.Enum |
FloatConverter | javax.faces.Float |
IntegerConverter | javax.faces.Integer |
LongConverter | javax.faces.Long |
NumberConverter | javax.faces.Number |
ShortConverter | javax.faces.Short |
标准转换器DateTimeConverter和NumberConverter都有自己的标签, 使用它们可以使用标签属性配置组件数据的格式。
JSF数据转换核心标签
标签 | 功能 |
---|---|
f:converter | 用于将任意转换器添加到父组件。 |
f:convertDateTime | 它用于将DateTimeConverter实例添加到父组件。 |
f:convertNumber | 它用于将NumberConverter实例添加到父组件。 |
<
h:form>
<
h:outputLabel for="username">
User Name<
/h:outputLabel>
<
h:inputText id="user-id" value="http://www.srcmini.com/#{user.name}"/>
<
br/>
<
h:outputLabel for="age">
Enter Age<
/h:outputLabel>
<
h:inputText id="age-id" value="http://www.srcmini.com/#{user.age}">
<
f:converter converterId="javax.faces.Integer" />
<
/h:inputText>
<
br/>
<
h:commandButton action="response.xhtml" value="http://www.srcmini.com/Submit"/>
<
/h:form>
// User.java
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class User {
String name;
Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
// response.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://xmlns.jcp.org/jsf/html"
<
h:head>
<
title>
Response Page<
/title>
<
/h:head>
<
h:body>
<
h1>
<
h:outputText value="http://www.srcmini.com/Hello #{user.name}"/>
<
/h1>
<
h3>
<
h:outputLabel value="http://www.srcmini.com/You are #{user.age} years old.">
<
/h:outputLabel>
<
/h3>
<
/h:body>
<
/html>
输出:
//索引页
文章图片
//回应页面
文章图片
推荐阅读
- JSF教程介绍
- JSF可重定位资源
- JSF引用托管Bean方法
- JSF h:outputText标记
- JSF h:messages标记
- JSF h:message标签
- JSF托管Bean
- JavaServer Faces生命周期
- JSF JDBC连接