JSF 标准转换器

2024 年 8 月 29 日 | 阅读 2 分钟

JavaServer Faces提供了一组转换器。 您可以使用它来转换组件数据。 转换的目的是从Servlet API获取基于String的数据,并将其转换为强类型的Java对象。

javax.faces.convert包包含所有标准转换器。 转换器根据组件的值指向的EL表达式的类型隐式分配。 您也可以通过转换器ID访问这些转换器。 下表显示了转换器类及其关联的转换器ID。

JSF 转换器

Class转换器ID
BigDecimalConverterjavax.faces.BigDecimal
BigIntegerConverterjavax.faces.BigInteger
BooleanConverterjavax.faces.Boolean
ByteConverterjavax.faces.Byte
CharacterConverterjavax.faces.Character
DateTimeConverterjavax.faces.Datetime
DoubleConverterjavax.faces.Double
EnumConverterjavax.faces.Enum
FloatConverterjavax.faces.Float
IntegerConverterjavax.faces.Integer
LongConverterjavax.faces.Long
NumberConverterjavax.faces.Number
ShortConverterjavax.faces.Short

每个转换器都关联一个标准错误消息。 如果你在页面上的任何组件上使用任何转换器,并且转换器无法转换组件的值,则转换器的错误消息将显示在页面上。

标准转换器DateTimeConverter和NumberConverter都有自己的标签,您可以使用标签属性配置组件数据的格式。

JSF数据转换核心标签

标签函数
f:converter它用于向父组件添加任意转换器。
f:convertDateTime它用于向父组件添加DateTimeConverter实例。
f:convertNumber它用于向父组件添加NumberConverter实例。

JSF <f:converter> 标签示例

// index.xhtml

// User.java

// response.xhtml

输出

// 首页

JSF Standard converters 1

// 响应页面

JSF Standard converters 2