在 JavaServer Faces Technology 中提供了很多有用的特性。需要著重介紹的一些主要功能包括:
- Managed Bean 工具
- 驗(yàn)證工具
- 豐富且可擴(kuò)展的組件庫
- 插入式呈現(xiàn)工具包
- 對(duì)具體用戶事件響應(yīng)的導(dǎo)航
- 跨請(qǐng)求保留應(yīng)用程序狀態(tài)
- 轉(zhuǎn)換模型
本文將簡要介紹 JavaServer Faces Technology 的這些功能并且給出一些例子。
關(guān)于這些功能的詳細(xì)信息和 JavaServer Faces Technology 提供的其他功能,請(qǐng)參考 J2EE 指南的 JavaServer Faces Technology 的相關(guān)章節(jié)(第 17-21 章)。
JavaServer Faces 應(yīng)用程序?qū)嵸|(zhì)上是一個(gè)運(yùn)行在一個(gè)與 Java(TM) 2 Platform, Enterprise Edition (J2EE(TM) platform) 兼容的容器中的 Servlet 或者 Java Server Pages(JSP) 應(yīng)用程序。這說明它需要 Java Servlet 2.3 和 JSP 1.2 或者更新的版本。 開始創(chuàng)建和配置一個(gè) JavaServer Faces 應(yīng)用程序的最好的方法是免費(fèi)下載Java 2 Software Development Kit, Standard Edition (J2SE SDK) 1.4 或者更高版本。需要指出的是,JavaServer Faces Technology 不要求在應(yīng)用程序中使用 JSP 頁面,您可以自由選擇直接使用 Servlets 或者其他模板技術(shù)。如果確實(shí)對(duì) JSP 容器使用了 JavaServer Faces Technology,您將通過 JavaServer Faces 的客戶組件標(biāo)簽從內(nèi)建的 JavaServer Faces 內(nèi)核和 HTML 組件庫中受益。JavaServer Faces 組件代表像文本字段、表單、按鈕、表格、復(fù)選框等的 Web 控件。
使用 JavaServer Faces Technology 創(chuàng)建一個(gè) JSP 頁面時(shí),在服務(wù)器的內(nèi)存中會(huì)建立一個(gè)組件樹,每一個(gè)組件標(biāo)簽對(duì)應(yīng)樹中的一個(gè) UIComponent 實(shí)例。該框架使用組件樹來處理應(yīng)用程序的請(qǐng)求并且創(chuàng)建一個(gè)呈現(xiàn)出的響應(yīng)。當(dāng)用戶生成一個(gè)事件時(shí),例如,點(diǎn)擊了一個(gè)按鈕,JavaServer Faces 生命周期即處理該事件并且產(chǎn)生適當(dāng)?shù)捻憫?yīng)。這是一個(gè)對(duì)大多數(shù)圖形用戶界面編程的表單而言而常見的一種的范例(paradigm)。
FacesServlet 是進(jìn)入 JavaServer Faces 框架的入口點(diǎn)。它處理請(qǐng)求處理生命周期并且用作一個(gè)前端控制器。JavaServer Faces Technology 也有保存重要請(qǐng)求信息的上下文的概念。上下文對(duì)象被稱為 FacesContext 。在 JavaServer Faces Technology 生命周期的每個(gè)階段上下文對(duì)象都被修改并且每次請(qǐng)求時(shí)都是有效的。
JavaServer Faces Technology 框架也有“值綁定”和“方法綁定表達(dá)式”的概念。如果熟悉了像 JSP Standard Tag Library (JSTL) 或者 JSP 2.0 這樣的技術(shù),您就已經(jīng)熟悉了表達(dá)式語言的概念。JavaServer Faces Technology 綁定表達(dá)式使您可以容易地和底層數(shù)據(jù)模型交互。Character Combat 演示應(yīng)用程序舉例說明了如何使用“值綁定”從數(shù)據(jù)模型中提取值。