`

JSF验证器和转换器

    博客分类:
  • JSF
阅读更多
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      自定义转换器:
 
 
分享到:
评论
3 楼 longzhu007 2009-03-18  
为什么不行呢?
2 楼 longzhu007 2009-03-18  
编辑一条数据的时候,显示的时候 对从数据库取出来的数据 <f:convertNumber type="number"pattern="#.00"/>
再次保存的时候
<f:validateDoubleRange minimum="0"maximum="999999999999999"></f:validateDoubleRange>来验证用户输入的是double
1 楼 longzhu007 2009-03-18  
验证器和转换器怎么同时使用呢?

相关推荐

    第7章 JSF转换器和验证器与实例程序

    第7章 JSF转换器和验证器与实例程序 JSF转换器和验证器(熊).ppt convertTest registraction validatorTest

    JSF自定义转换器验证器实例

    教你如何编写属于自己的JSF程序

    JSF(转换器+验证器)

    jsf转换器加上验证器,一个很好的原创代码啊,一定要好好学习

    facelets模板

    在 Facelets 中可以添加 JSF 验证器和转换器。Facelets 全面支持表达式语言 (EL) 和 JavaServer Pages Standard Tag Library (JSTL)。在 Web 应用程序中使用 Facelets 的部分好处包括模板化、重用和易于开发。

    JavaEE5学习笔记11-JSF转换器验证器使用经验总结

    JavaEE5学习笔记11-JSF转换器验证器使用经验总结。

    JSF基础教程 简体中文

    转换器(Converter)协助模型与视图之间的数据转换,验证器(Validator)协助进行语意检验(Semantic Validation)。 o 标准转换器 o 自订转换器 o 标准验证器 o 自订验证器 o 错误讯息处理 o 自订转换, 验证标签 ...

    JSF入门pdf

    文档目录如下: ...3.1 标准转换器 3.2自定义转换器 3.3标准验证器 3.4自定义验证器 3.5错误信息处理 3.6 自定义转换, 验证标签 4. 事件处理 4.1 动作事件 4.2 即时事件 4.3 值变事件 4.4 Phase事件

    JSF实战 练习 开发

    本书适合正在开发java web应用的架构师、应用开发人员阅读。 本书集教程、案例和参考于一身,讲解了何为jsf,它的工作...书中还讲解了标准组件、呈现器、转换器和验证器的各种细节,以及如何应用它们来构建实际应用。

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    jsf1.2+spring3.0+hibernate3.3例子-单表增删改查

    使用jsf1.2+spring3.0+hibernate3.3实现集成,利用annotation实现自动对象管理注入,用户表的登录增删改查操作,包括验证码ajax集成,消息机制,国际化处理,自定义转换器,自定义验证器等 qq:38732796 欢迎讨论

    JSF框架使用示例.rar_JSF

    使用了JSF框架中的事件监听、转换器、验证器,实现了导航。

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    3.3.2 JSF内建转换器 144 3.3.3 使用转换器 145 3.3.4 转换失败后的错误消息 149 3.4 自定义转换器 154 3.4.1 实现转换器类 154 3.4.2 注册转换器 156 3.4.3 使用自定义转换器 159 3.4.4 绑定到Bean属性的转换器 159...

    开发JSF应用程序(与Web有关)

    一年以来,Java Server Faces 是 J2EE Web 开发方面最值得期待的技术之一。...JSF 提供的 UI 框架由 UI组件和运行时组成,运行时负责把这些组件呈现给客户端并管理页面的生命周期(错误、验证器、导航等等)。

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    JSF简单应用

    在MyEclipse环境下JSF的应用 设计一个项目对登录用户名、密码进行验证及对E-mail地址进行格式转换 实现自定义转换器 实现用户登陆进行验证

    java server face 教程

    转换器(Converter)协助模型与视图之间的数据转换,验证器(Validator)协助 进行语意检验(Semantic Validation)。 o 标准转换器 o 自订转换器 o 标准验证器 o 自订验证器 o 错误讯息处理 o 自订转换, 验证标签 ...

    jsfworkshop:萨克森 JSF 研讨会

    JSF 研讨会 03/2014 该项目包含一个 JSF 项目,其中 ...自定义转换器 新话题 我继续使用这个项目来制作小功能的原型。 添加以下主题: 动态表单:用户可扩展的表单。 添加新输入字段的简单加号按钮。 (与阿贾克斯)

    Java Server Faces编程

    书中首先对度层和相关技术进行了综述,接着介绍了如何编写并部署JSF应用程序,然后是各个主题的详尽指导,包括如何使用标准GUI组件、输入验证和转换器,如何控制页面导航、管理Javabean和编写事件监听器。...

    Homework1.rar

    jsf实现注册功能

Global site tag (gtag.js) - Google Analytics