快速业务通道

JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
一个错误消息并放在 FacesContext 中,在显示响应阶段,这个错误消息与任何其他检验错误一起显示。

在应用请求值阶段之后,发生生命周期的第一次事件处理。在这个阶段,根据应用程序的检验规则检 验每个组件的值。检验规则可以是预定义的(JSF 附带的),也可以由开发人员定义。将用户输入的值与 检验规则进行对比。如果输入的值是无效的,就将一个错误消息添加到 FacesContext 中,并将组件标为 无效。如果一个组件被标为无效,JSF 就跳过其他阶段,进入显示响应阶段,就会显示当前的视图和检验 错误消息。如果没有发生检验错误,JSF 就进入更新模型值阶段。

阶段 4:更新模型值

JSF 应用程序生命周期的第四个阶段 — 更新模型值 — 通过更新托管 bean 的属性,更新服务器端 模型的实际值。只有绑定到一个组件的值的 bean 属性被更新。注意,这个阶段在检验之后发生,所以可 以确信复制到 bean 属性的值是有效的(至少在表单字段级上有效;它们在业务规则级上仍然可能是无效 的)。

阶段 5:调用应用程序

在生命周期的第五个阶段 — 调用应用程序 — JSF 控制器调用应用程序来处理表单提交。组件值已 经经过转换、检验并应用于模型对象,所以现在可以使用它们执行应用程序的业务逻辑。

在这个阶段,调用您的动作处理方法,比如这个示例应用程序的 ContactController 中的 persist() 方法和 read() 方法。

在这个阶段,还为一个给定的序列或可能的多个序列指定下一个逻辑视图。对于成功的表单提交,可 以定义特定的结果并返回这个结果。例如,在得到成功的结果时,将用户转移到下一个页面。为了让这个 导航操作起作用,必须在 faces-config.xml 文件中以导航规则的形式为成功的结果创建一个映射。发生 导航之后,就进入生命周期的最后一个阶段。JSF 获得从动作方法返回的对象并调用它的 toString() 方 法。然后使用这个值作为导航规则的结果。

阶段 6:显示响应

在生命周期的第六个阶段 — 显示响应,显示视图和它的所有组件,这些组件都处于当前状态。

图 6 展示了 JSF 应用程序生命周期的六个阶段(包括检验和事件处理)的对象状态图:

图 6. JSF 应用程序生命周期的六个阶段

JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器 - 编程入门网

JSF 数据转换器

转换过程可以确保数据是正确的对象或类型,因此将字符串值转换为其他类型,比如 Date 对象、原 始数据类型 float 或 Float 对象。可以使用内置的转换器,也可以编写定制的转换器。本节讨论 JSF 的标准转换器,然后详细讨论定制的转换器。

JSF 的标准转换器

JSF 提供了许多标准的数据转换器,而且大多数数据转换是自动发生的。表 1 给出用于简单数据转换 的转换器 ID 和对应的实现类。

表 1. 标准的 JSF 转换器

转换器 实现类
javax.faces.BigDecimal javax.faces.convert.BigDecimalConverter
javax.faces.BigInteger javax.faces.convert.BigIntegerConverter
javax.faces.Boolean javax.faces.convert.BooleanConverter
javax.faces.Byte javax.faces.convert.ByteConverter
javax.faces.Character javax.faces.convert.CharacterConverter
javax.faces.DateTime javax.faces.convert.DateTimeConverter
javax.faces.Double javax.faces.convert.DoubleConverter
javax.faces.Float javax.faces.convert.FloatConverter

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号