怀疑论者的JSF - JSF转换与验证 - 编程入门网
好地处理基本型及类似的类型,但是在处理日期数据时,必须指定转换标签 <f:convertDateTime/>。这个标签基于 java.text 包,并使用短、长和自定义样式。下面是一个例子:
这个例子展示了如何用 <f:convertDateTime/> 确保用户的生日可以转换为格式为 MM/yyyy(月/年)的日期对象。请参阅 JSF 的 java.text.SimpleDataFormat (在 参考资料 中),以获取模式列表。 其他样式 除了可以转换日期和时间格式外,JSF 还提供了处理像百分数或者货币数据这类值的特殊转换器。这个转换器处理分组(如逗号)、小数、货币符号等。例如,以下 <f:convertNumber/> 的用法就是处理货币的一种技巧:
在图 6 中,可以看到一些格式编排不正确的货币数据,以及所导致的转换错误。 图 6. 使用 f:convertNumber 标签 怀疑论者的JSF - JSF转换与验证(4)时间:2011-03-13 IBM Rick Hightower自定义转换 如果需要将字段数据转换为特定于应用程序的值对象,则需要自定义数据转换,如下面例子所示: String 转换为 PhoneNumber 对象 (PhoneNumber.areaCode、PhoneNumber.prefix、 ...)。 String 转换为 Name 对象 (Name.first、Name.last)。 String 转换为 ProductCode 对象 (ProductCode.partNum、ProductCode.rev、 ...)。 要创建自定义转换器,必须完成以步骤: 实现 Converter 接口(也就是 javax.faxes.convert.Converter)。 实现 getAsObject 方法,它将一个字段(字符串)转换为一个对象(例如,PhoneNumber)。 实现 getAsString 方法,它将一个对象(如 PhoneNumber)转换为一个字符串。 在 Faces 上下文中注册自定义转换器。 用 <f:converter/> 标签在 JSP 中插入这个转换器。 您可以自己看到如何在 JSF 应用程序生命周期中加入这些步骤。在图 7 中,JSF 在应用请求值阶段调用自定义转换器的 getAsObject 方法。转换器必须在这里将请求字符串转换为所需的对象类型,然后返回这个对象,将它存储在相应的 JSF 组件中。如果该值被返回呈现在视图中,那么 JSF 将在呈现响应阶段调用 getAsString 方法。这意味着转换器还要负责将对象数据转换回字符串表示形式。 图 7. 自定义转换器 getAsObject 和 getAsString 方法 创建自定义转换器 我们将使用一个案例分析来展示 Converter 接口、getAsObject 和 getAsString 方法的实现,同时还将展示如何在 Faces 上下文中注册这个转换器。 这个案例分析的目的是将一个单字段字符串值转换为一个 PhoneNumber 对象。我们将一步一步地完成这个转换过程。 第 1 步:实现 Converter 接口 这一步实现 Converter 接口。
第 2 步:实现 getAsObject 方法 这一步将一个字段值转换为一个 PhoneNumber 对象。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |