JavaServer Faces技术
一、JSF是構建Java Web程序的服務器端的組件框架,包括:
1)一個API,用來表示組件及管理他們的狀態;處理事件;服務器端;數據轉換;定義頁面導航;支持國際化和可訪問性;并且提供對以上功能API的擴展。
2)一個標簽庫,用來把組件添加到頁面,并且可以把組件與服務器端對象連接起來。
二、JSF提供了一個定義良好的編程模型以及不同的標簽庫,只要付出很少的努力,就可以做到:
1)創建Web頁面;
2)通過組件標簽把組件到Web頁面;
3)綁定頁面上組件到服務器端對象上;
4)重用及擴展自定義組件;
5)Save and restore application state beyond the life of server requests;
三、JSF Application
JSF應用和其他的Web應用提供的功能類似,一個典型的JSF應用包括以下部分:
1)Web頁面的集合,在頁面上放置了很多組件。
2)標簽集合,用來把組件添加到頁面上。
3)Managed Beans集合(Container管理的POJOs),這些Beans是作為頁面上組件的支撐,用來描述組件的屬性和功能。
4)web.xml
5)(可選)一個或多個資源配置文件,比如faces-config.xml,用來定義頁面導航規則,配置Bean和自定義對象(如自定義組件)。
6)(可選)自定義對象的集合,如自定義組件,Converter,Validator,Listener等。
7)(可選)自定義標簽的集合,應用在頁面上表示自定義的對象。
四、JSF技術的優點
JSF技術的最大優點就是把表現層和邏輯層分開了。JSF技術中包含了Facelets技術,Facelets技術有以下優點:
1)代碼可以重用和被擴展,通過組件模版和組合組件。
2)可以通過注解的方式注冊一個Managed Bean作為資源提供給JSF應用。
3)最重要的,JSF提供了豐富的架構來管理組件狀態,處理組件數據,驗證用戶輸入和處理事件。
?五、JSF的UI組件模型
JSF組件包括UI組件和非UI組件,UI組件是可重用和可配置的,可以是簡單的組件比如一個Button,也可以是復合組件比如由多個組件組成的Table。
JSF提供了豐富和靈活的UI組件架構,包括:
1)javax.faces.component.UIComponent類集合,定了UI組件的狀態和行為;
2)一個渲染(rendering)模型,定義如何以不同方式來渲染一個組件。
3)一個轉換(conversion)模型,定義如何注冊Convertor到一個組件上。
4)一個事件及監聽模型,定義如何處理一個組件上的事件。
5)一個驗證(validation)模型,定義如何注冊一個Validator到一個組件上。
六、JSF的頁面導航模型
頁面導航就是決定下一個顯示的頁面或者的視圖的一系列規則。JSF頁面導航規則,可以是隱式的,也是由用戶顯式的自定義。
隱式的比如:<h:commandButton value="submit" action="response">,當按下按鈕,頁面導航到名字為response的頁面上。
用戶自定義的導航規則是在資源配置文件中配置的,比如:faces-config.xml中就可以配置。導航規則的默認格式為:
<navigation-rule>
??? <description></description
??? <from-view-id></from-view-id>
??? <navigation-case>
??????? <from-action></from-action>
??????? <from-outcome></from-outcome>
??????? <if></if>
??????? <to-view-id></to-view-id>
??? </navigation-case>
</navigation-rule>
顯式導航的過程是這樣的:
1)NavigationHandler 根據from-view-id選擇一個與當前頁匹配的規則;
2)同時匹配action和outcome,如果成功,顯示to-view-id對應的頁面;
3)如果同時匹配失敗,直接匹配outcome,如果成功,顯示to-view-id對應的頁面;
4)如果匹配outcome失敗,直接匹配action,如果成功,顯示to-view-id對應的頁面;
5)如果都失敗,繼續顯示當前頁面。
七、JSF應用的生命周期
一個JSF頁面代表一個組件樹,稱為一個視圖(view)。
JSF應用的生命周期從客戶端向一個頁面發起HTTP請求開始,到服務端返回一個HTML頁面給客戶端結束。
這個過程可以分為兩個主要的階段:執行階段(execute)和渲染階段(render)。執行階段又可以進一步劃分成
多個子階段,用來支持復雜的組件樹。具體來說包括以下幾個子階段:
1)重建視圖階段(Restore View);
2)應用請求值階段(Apply Request Value);
3)處理驗證階段(Process Validation);
4)更新模型值階段(Update Model Value);
5)觸發應用階段(Invoke Application);
6)渲染響應階段(Render Response)。
?
?
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/winson/p/3259926.html
總結
以上是生活随笔為你收集整理的JavaServer Faces技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吾妻是谁唱的啊?
- 下一篇: 报表应用系列——图表JFreeChart