怀疑论者的JSF: JSF应用程序的生命周期 - 编程入门网
怀疑论者的JSF: JSF应用程序的生命周期时间:2011-04-11 IBM Rick Hightower与很多流行的观点不同,我们无需了解技术工作原理的所有细节,就可以编写 JSF 应用 程序。您只需要给自己设置一个项目,并从头到尾不断修修补补,这样就可以学习到大量的 知识。另一方面,理解必要的基础知识可以使您的开发工作更加有效 —— 而且会节省很多 时间。 在本系列 怀疑论者的 JSF 的第 2 篇文章中,我们将逐一介绍一下 JSF 请求处理生命周 期的 5 个阶段。我们将介绍在每个阶段中会发生什么,以及这些阶段是如何相互连接在一起 的,然后使用一个示例程序来展示实际的生命周期。随着学习的深入,我们还将介绍如何使 用在 第 1 部分 中简要提及的一些内置的 JSF 组件。我们还将向您介绍如何在 JSF 开发中 采用 Struts Tiles,以及如何组合使用 JSF 和 JavaScript 技术进行即时事件的处理。 正如上一篇文章中介绍的一样,示例程序的默认编译环境是 Maven。您可以通过点击页面 顶部或底部的 Code 图标下载源代码。为了简单性起见,您会发现与上一篇文章中一样的示 例设置。有关编译环境的设置的详细说明,请参阅 参考资料,其中包括使用 Ant(而不是 Maven)来编译并运行示例程序的说明。 JSF 生命周期:概述 JSF 程序生命周期的 5 个阶段如下(注意每个阶段的事件处理): 恢复视图 应用请求的值;处理验证 更新模型值;处理事件 调用程序;处理事件 进行响应;处理事件 这 5 个阶段显示了 JSF 通常处理 GUI 的顺序。虽然这个清单列出了每个阶段中事件处 理的可能执行顺序,但是 JSF 的生命周期很难是固定一成不变的。您可以通过忽略某个阶段 或合并整个生命周期从而对执行顺序进行修改。例如,如果一个无效的请求值被拷贝到一个 组件中,那么当前的视图就会重新显示,而有些阶段就可能不会执行。在这种情况中,您可 以执行一个 FacesContext.responseComplete 方法调用,将用户重定向到一个不同的页面上 ,然后使用请求分发器(从 FacesContext 中的请求对象中获得)将其转发到一个适当的 Web 资源上。另外,您可以调用 FacesContext.renderResponse 重新显示原来的视图。(详 细信息请参看下面的示例程序。) 关键是让生命周期构成您的开发项目,而不完全依赖于生命周期。在需要时,您可以修改 生命周期,而不用担心破坏您的程序。在大部分情况中,您会发现 JSF 的生命周期是值得遵 守的,因为它的逻辑非常好。表单必须在任何应用程序逻辑执行之前进行验证,并且在进行 验证之前,必须对域中的数据进行转换。遵守生命周期的规定,可以让您更自由地考虑有关 验证和转换的问题,而不是请求处理本身的阶段。有一点非常重要:其他 Web 框架也都具有 类似的生命周期;它们只不过是没有很好地进行宣传。 专注 有些使用 JSF 的开发者可能从来都不会编写一个组件,也不会对框架进行任何扩展;而 另外一些人则专注于这种任务的开发。尽管 JSF 的生命周期与大部分那其他项目都是相同的 ,但是根据在项目中的角色您可以采用不同的阶段。如果您更专注于通用的应用程序开发, 就可能会关注请求处理生命周期的中间阶段: 应用请求值 更新模型值 调用程序 如果您专注于 JSF 组件的开发,就可能会关注于整个生命周期中的第一个阶段和最后一 个阶段: 恢复视图 怀疑论者的JSF: JSF应用程序的生命周期(2)时间:2011-04-11 IBM Rick Hightower进行响应 在接下来的几节中,我们将遍历 JSF 请求处理生命周期的每个步骤,包括事件处理和验 证。了解了每个步骤的基本知识之后,我们将简要介绍一个示例程序,它可以展示这些步骤 如何一起使用。在开始之前,首先来看一下图 1,这是一个有关 JSF 生命周期的图。 图 1. JSF 生 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |