- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                第四章 验证和转换 作者:何双江 引言 上两章里我们分别讨论了UI组件模型和事件处理模型,这些基本是JSF的MVC框架的核心了 但对于一个完整的JSF框架中还包括一些辅助组件: 格式化 和 转换器 验证器 JSF提供了两种方式来实现以上,本章将介绍这些组件在JSF框架中如何使用和如何扩展 本章目标 转换器和验证器简介 转换器处理模型 使用转换器 格式化 java.text.NumberFormat & DateFormat 内置转换器 自定义扩展转换器 验证处理模型 使用内置验证器 自定义扩展验证器 转换器和验证器简介 JSF框架提供了验证器用来验证数据规则,一些默认规则被定义再javax.faces.validator包中,这些规则都实现Validator接口 JSF框架同时还提供了转换器,把页面串转换成程序对应处理的数据类型,或把程序中的数据类型转换成相应的字符串格式输出。该功能在javax.faces.convert包中,转换器都实现了Converter接口 以上两个工作都是在请求生命周期的Process- Validations阶段完成的;当然如果UI组件实现了ActionSource接口或EditableValueHolder接口,并把immediate property设置true,其将在Apply Request Values阶段进行。 转换器处理模型 首先我们来讨论转换器(Converter),显然转换过程是一个双向的;一方面把请求的字符串数据转换成Java数据类型,另一方面把Java数据类型转换成字符串。 在处理用户请求阶段(inbound),用户请求的字符串通常都会包含格式化信息(如:日期,信用卡等);当数据通过验证以后,将调用Converter的getAsObejct方法把字符串转换成相应的数据类型。(图解) 在处理回复阶段(outbound),服务器回复的字符串通常会把数据类型转换成视图的格式化字符串(图解) inbound阶段的转换 outbound阶段的转换 使用转换器 我们可以在标签的converter属性指定转换器如: h:inputText converter=“Double” value=“bean.property”/ h:inputText value=“bean.property” f:converter converterId=“Double”/  	/h:inputText 此时的Double转换器必须要提供在faces-config.xml 中注册 此后在我们提交数据的时候,会由JSF框架使用默认的DoubleConverter转换器来转换我们的属性 支持converter属性的标签包括:inputText、inputHidden、inputSecret、outputText。 JSF定义了Java常规数据类型的转换器,主要包括:数值类型、日期类型、字符类型和布尔类型。 当然我们也可以自定义转换器,在稍后我们将介绍实现Conerter接口自定义转换器。 当发生异常的时候页面通过h:messages/标签显示异常信息 注册转换器 所有要使用的转换器,必须在faces-config.xml中注册Converter 注册方法是,使用converter标签,如:  converter 	    converter-idInteger/converter-id 	    converter-classjavax.faces.convert.IntegerConverter/converter-class 	 /converter convert-id表示在converter属性中用到的名字 convert-class表示converter的类 用户自定义的Convert也要采用类似的方式 内置转换器 格式化 从上面的表中我们可以看到 要转换的类型其实只有4类: 数值类型 日期类型 布尔类型 字符类型 其中数值类型和日期类型,我们可以指定输入 /输出格式 f:convertNumber 数值格式化 f:convertDataTime日期格式化 数值格式化 使用数值格式化,我们必须在UIInput和UIOutput组件标签,放置子标签: f:convertNumber 该标签的属性用来控制如何格式化 pattern  格式化符号 如:#,###.## type 处理数据的类型包括:number, currency, and percent “ groupingUsed 是否可以使用分隔如:2,000,000  maxIntegerDigits minIntegerDigits 整数部分最大小范围 maxFractionDigits minFractionDigits 小数部分最大小范围 日期格
                您可能关注的文档
最近下载
- CSC-326T5-FA-G [V1.01] [4810] 装置使用说明书.pdf VIP
- oracle database19c dataguard新特性详解文.pdf VIP
- Oracle 19c RAC on Linux安装手册(完整版).pdf VIP
- CSC-326T1-DA-G [V2.01] [4E0C] 装置使用说明书.pdf VIP
- 体育基础综合考研杨文轩《体育概论》考研真题库.docx VIP
- Oracle+19c和20c新特性解密.pptx VIP
- ORACLE多表查询优化.pdf VIP
- 12年半边井子社区高血压患者自我管理小组活动记录.doc VIP
- 幼儿审美认知发展机制及教育实践研究.docx VIP
- 体育概论(第二版) 杨文轩 教学课件.pptx VIP
 原创力文档
原创力文档 
                        

文档评论(0)