jee第六週做業

JavaServer Faces生命週期概述

JavaServer Faces應用程序的生命週期在客戶端爲頁面發出HTTP請求時開始,並在服務器響應該頁面並轉換爲HTML時結束。html

生命週期能夠分爲兩個主要階段:執行和渲染。執行階段進一步分爲子階段以支持複雜的組件樹。這種結構要求組件數據被轉換和驗證,組件事件被處理,而且組件數據以有序的方式傳播到bean。java

JavaServer Faces頁面由一個稱爲視圖的組件樹表示。在生命週期中,JavaServer Faces實現必須構建視圖,同時考慮從先前提交的頁面保存的狀態。當客戶端請求頁面時,JavaServer Faces實現將執行多個任務,例如驗證視圖中組件的數據輸入並將輸入數據轉換爲服務器端指定的類型。git

JavaServer Faces實現將執行全部這些任務,做爲JavaServer Faces請求 - 響應生命週期中的一系列步驟。 圖7-3說明了這些步驟。github

圖7-3 JavaServer Faces標準請求響應生命週期

Faces請求和Faces響應的流程圖,包括事件和驗證處理,錯誤處理,模型更新,應用程序調用。

 

 

Facelets應用程序的生命週期

  1. 當客戶端(如瀏覽器)向使用Facelets建立的頁面發出新的請求時,會建立一個新的組件樹或 javax.faces.component.UIViewRoot將其建立並放入FacesContext瀏覽器

  2.  

    UIViewRoot應用於Facelets,視圖中填充了用於渲染的組件。服務器

  3. 新建的視圖做爲對客戶端的響應而回復。app

  4. 在渲染時,爲下一個請求存儲此視圖的狀態。輸入組件和表單數據的狀態被存儲。spa

  5. 客戶端能夠與視圖交互並從JavaServer Faces應用程序請求另外一個視圖或更改。此時,保存的視圖從存儲的狀態恢復。code

  6. 恢復的視圖再次經過JavaServer Faces生命週期,若是沒有驗證問題而且未觸發任何操做,它最終將生成新視圖或從新呈現當前視圖。component

  7. 若是請求了相同的視圖,則再次呈現存儲的視圖。

  8. 若是請求新視圖,則繼續步驟2中描述的過程 。

  9. 新的視圖而後做爲對客戶的響應而回復。

 

參考資料:   https://javaee.github.io/tutorial/jsf-intro007.html#BNAQQ

相關文章
相關標籤/搜索