怀疑论者的JSF: JSF应用程序的生命周期 - 编程入门网
——调用程序 —— 中,JSF 控制程序会调用程序来处理 表单 的提交操作。组件值已经经过了类型转换和有效性验证,并被应用到模型对象中了,因此您 现在可以使用它们来执行应用程序的业务逻辑了。
在这个阶段,您还可以为一个给定的序列或很多可能的序列指定后面的逻辑视图,这可以 通过为一次成功的表单提交定义一个特定的结果并返回这个结果来实现。例如:在成功输出 时,将用户重定向到下一页中。要让这种导航工作能够起作用,您需要在 faces-config.xml 文件中创建一个到 成功输出 的映射作为一条导航规则。一旦导航发生之后,您就转换到生 命周期的最后一个阶段了。 阶段 5:进行响应 在生命周期的第五个阶段 ——进行响应 —— 中,您可以在视图中显示当前状态中的所 有组件。 图 2 是 JSF 生命周期的第五个阶段的一个对象状态图,包括时间有效性验证和处理。 图 2. JSF 生命周期的五阶段 范例 现在您已经对 JSF 生命周期的阶段有了基本的了解,下面我们将向您介绍在一个范例 Web 应用程序中,这些阶段是如何协同工作的。除了展示 JSF 生命周期的基本功能之外,这 个应用程序还会利用一些通用的 JSF GUI 组件,例如 Radio List, List, Text Field, Label, Panel 等等,这样您就可以亲自体验一下在 第 1 部分 中曾经简要讨论过的这些组 件。 这个示例程序还会展示在 JSF 中使用其他 Java 技术的两种方法。它将组合使用 JSF 和 JavaScript 来启用即时事件处理(在那些对整个表单进行验证是多余的情况中),其布局是 由 Struts Tiles 进行管理的。虽然 Struts Tiles 并不是 JSF 的一个必要部分,但是 tiles 通常用来为一个程序中的所有 JSF 页面提供一致的外观。要学习更多有关 Struts Tiles 的内容,请参阅 参考资料。 程序设置 这个示例 Web 程序实际上是一个非常简单的创建、阅读、更新并删除(CRUD)一个在线 CD 仓库中库存的程序。它包括一个表单,让用户可以向系统中输入新 CD;有一些单选按钮 ,让用户选择音乐的分类。当用户选择一个分类时,就启动一些 JavaScript 脚本将这个表 单立即发回服务器。程序组合采用 JSF 和 JavaScript 技术来处理一个组件,而不是整个页 面,这种技术称为 即时事件处理。在这种情况中,您可以填充一个子类清单,而不用验证表 单的其他内容。 这个示例程序还包括一个 CD 清单,它将展示如何使用 JSF 的 dataTable。从这个页面 中,最终用户可以根据标题或者艺术家对 CD 清单进行排序。 类和方法 图 3 列出了这个示例程序的类。图中列出了 4 个类,我们只关注其中的 3 个: StoreManagerDelegate、CD 和 StoreController。 图 3. 示例程序类 怀疑论者的JSF: JSF应用程序的生命周期(4)时间:2011-04-11 IBM Rick HightowerStoreManagerDelegate 类是这个程序的业务代表。它为整个模型呈现了主界面。CD 类是 一个数据转换对象(DTO)。如果这是一个真实的程序,那么 StoreManagerDelegate 类就会 为添加、删除和编辑 CD 实现所有的业务规则,还会负责使用一个数据访问对象(DAO)将 CD 存储到一个永久的存储介质中。StoreManagerDelegate 和 CD 包含了一些用于这个 MVC 程序的 模型。 StoreController 类是本例中的主要后台 bean。StoreController 类是 GUI 世界和模型 世界之间的黏合剂。它将自己的很多行为都委托给 StoreManagerDelegate 进行处理。 StoreController 是这个 MVC 程序的 控制程序。 StoreController 类展示了如何构建一个可排序的 CRUD 清单。它具有以下与 CRUD 相关 的方法:editCD、addNew、addCD 以及 updateCD。StoreController 还负责将模型对象呈现 给表单。在这种情况中,它使用 cd 属性将当前的 CD 对 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |