Java Enterprise Edition 5 平台包括 JavaServer Faces (JSF) 技术,该技术提供了成熟的可扩展的用户界面组件模型。通过使用此模型的设计,应用程序开发者可通过扩展 JSF 中包含的标准组件来方便地创建定制组件,并在应用程序中重用这些组件。创建一个组件可以使页面作者免去处理 AJAX 中的复杂内容,即呈现所有必要的 HTML 和 JavaScript 代码以将 AJAX 功能加入到应用程序中。使用 JSF 包装 AJAX 功能的方法有许多种,本文简要介绍了其中的几种策略。您可以从下面的文档中了解每种相关策略的详细内容:
开发者在向 JSF 应用程序中添加 AJAX 支持时会面临许多设计问题。例如:
要在 JSF 应用程序中添加 AJAX 支持的开发者可以从多种策略中进行选择。我们此处将介绍两种类型的策略。要强调的一点是,组件编写者和页面开发者使用的编程模型是不同的。您可以使用此处介绍的策略,将 AJAX 支持仅添加到应用程序的一部分中,或者创建可重用的 JSF 组件。虽然创建支持 AJAX 的 JSF 组件需要完成一些额外的工作,但是,这使页面作者可以非常方便地重用该组件。
第一种策略使用 PhaseListener 来实现 JSF 组件中的 AJAX 请求,而由 JSF 生命周期和定制组件来处理或修饰 AJAX 请求。第二种策略使用 Servlet 作为控制器,它引入了 Servlet 来处理要用于 JSF 组件的 AJAX 请求。因此,在第二种策略中,将在 JSF 生命周期处理外部来处理所有异步请求。通常,第一种策略比较常见,而第二种策略更特殊一些。