簡(jiǎn)述JSF入門介紹
一.JSF入門介紹
JSF即JavaServer Faces,是一種新的用于構(gòu)架j2ee應(yīng)用用戶界面的技術(shù),適合于基于MVC架構(gòu)的應(yīng)用中。
JSF入門技術(shù)的主要功能有:
◆Managed Bean 工具
◆驗(yàn)證工具
◆豐富且可擴(kuò)展的組件庫(kù)
◆插入式呈現(xiàn)工具包
◆對(duì)具體用戶事件響應(yīng)的導(dǎo)航
◆跨請(qǐng)求保留應(yīng)用程序狀態(tài)
◆轉(zhuǎn)換模型
本文將通過(guò)cnjsf這個(gè)應(yīng)用程序?qū)σ陨瞎δ苓M(jìn)行展開(kāi)描述,要理解本文,您需要對(duì) Web開(kāi)發(fā)、servlet, JSP, JavaBeans, 與標(biāo)簽庫(kù)有一定的理解。
二.JSF入門工作原理
JSF應(yīng)用程序?qū)嵸|(zhì)上是一個(gè)運(yùn)行在一個(gè)與 Java(TM) 2 Platform, Enterprise Edition (J2EE(TM) platform) 兼容的容器中的 Servlet 或者 Java Server Pages(JSP) 應(yīng)用程序。但是,JSF 不要求在應(yīng)用程序中使用 JSP 頁(yè)面,您可以自由選擇直接使用 Servlets 或者其他模板技術(shù)。如果確實(shí)對(duì) JSP 容器使用了 JSF,您將通過(guò) JSF 的客戶組件標(biāo)簽從內(nèi)建的 JSF 內(nèi)核和 HTML 組件庫(kù)中受益。JSF 組件代表像文本字段、表單、按鈕、表格、復(fù)選框等的 Web 控件。
使用 JSF 創(chuàng)建一個(gè) JSP 頁(yè)面時(shí)在服務(wù)器的內(nèi)存中會(huì)建立一個(gè)組件樹(shù),每一個(gè)組件標(biāo)簽對(duì)應(yīng)樹(shù)中的一個(gè) UIComponent 實(shí)例該框架使用組件樹(shù)來(lái)處理應(yīng)用程序的請(qǐng)求并且創(chuàng)建一個(gè)呈現(xiàn)出的響應(yīng)。當(dāng)用戶生成一個(gè)事件時(shí),例如,點(diǎn)擊了一個(gè)按鈕,JSF 生命周期即處理該事件并且產(chǎn)生適當(dāng)?shù)捻憫?yīng)。這是一個(gè)對(duì)大多數(shù)GUI編程的表單而言常見(jiàn)的一種的范例。每當(dāng)用戶做任何事情,如點(diǎn)擊按鈕或者提交表單,都有事件產(chǎn)生。然后事件消息通過(guò) HTTP 傳到服務(wù)器。在服務(wù)器端,是一個(gè)配置了叫做 Faces servlet 的特殊 servlet 的 WEB 容器。Faces servlet(javax.faces.webapp.FacesServlet)是所有 JSF 應(yīng)用的引擎。每個(gè) JSF 應(yīng)用在 WEB 容器中都有獨(dú)立的 Faces servlet 。
FacesServlet 是進(jìn)入 JSF 框架的入口點(diǎn)。它處理請(qǐng)求處理生命周期并且用作一個(gè)前端控制器。JSF 也有保存重要請(qǐng)求信息的上下文的概念。上下文對(duì)象被稱為 FacesContext(javax.faces.context.FacesContext)。在 JSF 生命周期的每個(gè)階段上下文對(duì)象都被修改并且每次請(qǐng)求時(shí)都是有效的。
Faces servlet 的后臺(tái)處理是相當(dāng)復(fù)雜的。然而你沒(méi)有必要了解這些細(xì)節(jié),只需要記住:Faces servlet 為 JSP 頁(yè)面創(chuàng)建了組件樹(shù),對(duì)組件樹(shù)的控制又對(duì)應(yīng)著事件。Faces servlet 知道怎么去創(chuàng)建組件樹(shù),因?yàn)樗呀?jīng)訪問(wèn)了當(dāng)前應(yīng)用中所有的 JSP 頁(yè)面。Faces servlet 還會(huì)創(chuàng)建一個(gè) Event 對(duì)象,并把它傳遞給所有注冊(cè)過(guò)的偵聽(tīng)器。你可以通過(guò)與當(dāng)前請(qǐng)求相對(duì)應(yīng)的 FacesContext 得到這個(gè)頁(yè)面的組件樹(shù)。
【編輯推薦】