JSF验证器和转换器
++YONG原创,转载请注明
1 验证器:
JSF是通过后台bean和验证器中的验证器方法来支持数据验证的。
1.1 使用验证器方法:
输入组件可关联到后台bean中的验证器方法。验证器方法通常用作应用特定的验证,重用性不高。假设有名为registrationBean的后台bean,它有一名为validateEmail的验证方法。那么在JSP中,便可以这样将输入组件关联到此方法:
<h:inputText id= "emailInput" validator= "#{registrationBean.validateEmail}"
value= "#{registrationBean.email}" />
|
现在用户为这个控件输入一个值,validateEmail方法都将对其进行检查以确保其有效。如果成功,后台bean的email将被更新;否则,产生错误消息。
1.2 使用验证器:
对任何输入组件,你都可以注册一个或多个验证器。JSF内建了三个标准验证器。如下图:
JSP定制标签
|
属性
|
行为
|
<f:validateDoubleRange >
|
minimum、maximum
|
确保组件的值可以被转换成double型数值,并且在指定的最小、最大值范围内
|
<f:validateLength >
|
minimum、maximum
|
确保组件的值的长度在指定的最小、最大值范围内
|
<f:validateLongRange >
|
minimum、maximum
|
确保组件的值可以被转换成long型数值,并且在指定的最小、最大值范围内
|
一个组件可以关联任意多个验证器。值得注意的是,每个组件都有required属性,它强制组件拒绝空值。这个不是标准的验证器,它验证行为是由输入组件自行处理的。
另外,你还可以定义自己的验证器。
2 转换器:
为了使用户界面能够以用户能够理解的方式显示对象,对象必须能够转换为适当的字符串以供显示。JSF提供了一套标准转换器来满足基本的类型转换的要求。当然你也可以编写自己的转换器或作用第三方提供的转换器。
你可以将转换器关联到几乎任何显示简单值的组件,特别是输入组件。要记住,转换器是双向的。它们最擅长的是调整对象显示给用户的方式,但是如果将它们与输入控件联合使用时,用户的输入格式必须按照转换器指定的格式。
JSF定义了两个标准转换器,DateTime转换器用来格式化日期对象,Number转换器用来格式化任何类型的数据,包括货币和百分数。
2.1 使用DateTime转换器:
JSP标签
|
属性
|
说明
|
<f:convertDateTime >
|
dateStyle
|
指定字符串日期部分的格式样式。有效值有:
short、medium(默认)、long和full。仅在设置了type属性时有效
|
timeStyle
|
指定字符串时间部分的格式样式。有效值有:
short、medium(默认)、long和full。仅在设置了type属性时有效
|
timeZone
|
指定日期的时区。如果没有指定,将使用格林尼治标准时间(GMT)
|
locale
|
用来显示日期的特定场所。将覆盖用户的当前场所。
|
pattern
|
用于转换这个数值的日期格式模式,此模式与用于java.util.SimpleDateFormat类的格式模式是相同的。它和type属性只能选一个
|
type
|
指定是否显示日期、时间或两者都显示,有效值为:date、time、both
|
示例:假设user对象的dateOfBirth的值为2003年5月23日上午7点24分18秒
<h:inputText value="#{user.dateOfBirth}">
<f:convertDateTime pattern="yyyy-MM-dd (HH:mm)" />
</h:imputText>
|
则这段代码将会在文件框显示2003-05-23 (07:24)。用户输入的日期格式也要是这种模式的,否则将产生转换错误。
2.2 使用Number转换器:
标签
|
属性
|
说明
|
<f:convertNumber />
|
currencyCode
|
当type为currency时,指定三位数的国际货币代码。
|
currencySymbol
|
当type为currency时,指定特定的记号,如“$”。
|
groupingUsed
|
如果应该使用的分组记号(如:”,”或” ”)为true。默认为true
|
integerOnly
|
如果只需要处理输入值的整数部分(小数部分将被忽略),则设置为true。默认值为false
|
locale
|
用于显示这个数据的特定场所。将覆盖用户的当前场所。
|
minFractionDigits
|
要显示的最小小数位数
|
maxFractionDigits
|
要显示的最大小数位数
|
minIntegerDigits
|
要显示的最小整数位数
|
maxIntegerDigits
|
要显示的最大整数位数
|
pattern
|
用于转换数值的小数格式模式。它和type属性二选一
|
type
|
数值的类型:可以是number(默认值)数字、currency货币或者percentage百分比。
|
示例:
<h:inputText id="CurrencyDigitsInput" value="#{user.balance}">
<f:convertNumber type="currency" minIntegerDigits="2"
maxIntegerDigits="5" maxFractionDigits="2"
currencySymbol="$" />
</h:inputText>
|
我们指定为最小2位整数和最大5位整数,以及两位小数且货币符号为“$”。所以,对于数值12345678.9876,转换器将显示$45,678.99。第五位整数左边的数字(123)将被切去。另外,只有两位小数被显示,最后一位被四舍五入。
3 自定义验证器:
4 自定义转换器:
分享到:
相关推荐
在JSF中,转换器和验证器是两个关键组件,它们确保了从用户输入到后台模型数据的准确无误的转换和验证。 转换器(Converter)在JSF中扮演着重要的角色,它们负责将用户界面显示的数据格式转化为模型所需的格式,...
在JSF中,转换器和验证器扮演着至关重要的角色,它们允许我们对用户输入进行处理和验证,确保数据的质量和一致性。本实例将带你深入理解如何在JSF中创建自定义的转换器和验证器。 首先,我们来了解**转换器...
JSF,全称为JavaServer Faces,是Java...这包括了解如何编写转换器和验证器类,如何将它们与JSF组件关联,以及如何处理验证和转换过程中的异常。这样的实践将增强你对JSF框架的理解,提高你在实际开发中的应用能力。
JSF 提供了一种强大的机制来处理表单验证,包括内置的验证器和自定义验证器。这篇博客文章“jsf验证器与自定义验证”深入探讨了这些概念,并可能提供了实现细节和示例代码。 首先,JSF 内置的验证器是预定义的,...
在JavaServer Faces (JSF)框架中,监听器和转换器是两个重要的组件,它们用于增强用户界面与后台数据处理的交互。在这个项目中,我们深入探讨了如何在JSF中有效地利用这两种机制。 首先,我们要理解JSF监听器的作用...
讲师很可能会演示如何在Myeclipse中创建一个简单的JSF项目,设置好环境后,他会逐步解释转换器的概念,编写一个自定义转换器的示例,展示如何注册和使用这个转换器,最后通过实际运行项目来验证转换器的正确性。...
验证器`Validator`接口是JSF验证的基础,开发者可以通过实现`javax.faces.validator.Validator`接口来创建自定义验证器。验证器的使用包括: 1. **注册验证器**: 在faces-config.xml文件中,使用`<validator>`标签...
转换器类需要覆盖`getAsString()`和`getAsObject()`方法,分别处理从组件值到字符串和从字符串到对象的转换。 2. 全局转换器:通过在faces-config.xml配置文件中注册转换器,可以将其应用于整个应用或特定的组件...
在 Facelets 中可以添加 JSF 验证器和转换器。Facelets 全面支持表达式语言 (EL) 和 JavaServer Pages Standard Tag Library (JSTL)。在 Web 应用程序中使用 Facelets 的部分好处包括模板化、重用和易于开发。
#### 一、JSF验证器概览 在JavaServer Faces (JSF) 中,用户输入验证是一项重要的功能,用于确保客户端提交的数据满足特定的要求。这不仅可以提升应用程序的安全性,还可以提高用户体验,通过及时反馈错误信息让...
3. ** faces-config.xml** - 这是JSF应用的核心配置文件,用于定义导航规则、组件、转换器和验证器等。 4. ** Managed Beans** - JSF 中的主要业务对象,用于存储和管理应用程序的业务逻辑和状态。 5. **EL...
五、验证与转换:为了确保数据的准确性和安全性,JSF内置了验证和转换功能。当用户提交表单时,JSF会自动执行验证规则,检查数据是否符合预期格式。同时,它还提供了转换机制,用于将用户输入的数据转换为应用程序所...
在数据处理方面,JSF内置了标准转换器和验证器,这些转换器和验证器能够自动处理数据类型转换和输入验证,开发者也可以实现自定义转换器和验证器来满足特定的业务需求。JSF还包含了一套错误信息处理机制,能够在用户...
Shale是一个开源的Java库,它为JSF提供了一系列强大的功能,包括验证框架,可帮助开发者轻松地创建复杂的客户端和服务器端验证规则。 首先,我们需要理解JSF中的验证机制。JSF是一种用于构建Web用户界面的MVC(模型...
- **内置验证器**:除了转换器之外,JSF 还提供了标准的验证器,如 `LengthValidator` 用于验证输入长度是否符合要求。 **3.4 自定义验证器** - **自定义验证器实现**:开发者可以通过实现 `javax.faces.validator...
- **调用应用程序**:执行动作监听器和动作。 - **呈现响应**:准备响应并发送给客户端。 在这些阶段中,事件被创建并按顺序处理。监听器可以影响生命周期的进程,例如通过调用`FacesContext.renderResponse()`...
4. **转换器和验证器** - 转换器(Converter)负责在浏览器与模型之间的数据类型转换,确保正确的数据类型被用于应用程序。 - 验证器(Validator)则执行语义验证,检查用户输入是否符合业务规则。JSF提供了预定义...
JSF提供了一系列标准的数据转换器,例如将字符串转换为日期或整数等。这些转换器会自动应用于UI组件和Managed Beans属性之间的数据转换。 #### 3.2 自定义转换器 当标准转换器不满足特定需求时,开发者可以创建...
转换器(Converter)则负责在组件值与Java对象之间进行类型转换。 ### 6. 事件处理 JSF事件模型允许在组件之间触发和监听事件。`ActionEvent`是JSF中最常见的事件类型,通常在命令组件(如按钮)被点击时触发。...