JSF - 生命週期



JSF 應用程式生命週期包含以下六個階段:

  • 恢復檢視階段
  • 應用請求值階段;處理事件
  • 處理驗證階段;處理事件
  • 更新模型值階段;處理事件
  • 呼叫應用程式階段;處理事件
  • 渲染響應階段
JSF Life Cycle

這六個階段展示了 JSF 處理表單的順序。列表按執行的可能順序顯示了這些階段,並在每個階段都進行了事件處理。

階段 1:恢復檢視

一旦單擊連結或按鈕並且 JSF 接收請求,JSF 就會開始恢復檢視階段。

在此階段,JSF 構建檢視,將事件處理程式和驗證器連線到 UI 元件,並將檢視儲存在 FacesContext 例項中。FacesContext 例項現在將包含處理請求所需的所有資訊。

階段 2:應用請求值

建立/恢復元件樹後,元件樹中的每個元件都使用 decode 方法從請求引數中提取其新值。元件儲存此值。如果轉換失敗,則會生成錯誤訊息並將其排隊到 FacesContext 中。此訊息將在渲染響應階段與任何驗證錯誤一起顯示。

如果任何 decode 方法事件監聽器在當前 FacesContext 例項上呼叫 renderResponse,則 JSF 將移動到渲染響應階段。

階段 3:處理驗證

在此階段,JSF 處理註冊在元件樹上的所有驗證器。它檢查元件屬性規則以進行驗證,並將這些規則與為元件儲存的本地值進行比較。

如果本地值無效,JSF 會將錯誤訊息新增到 FacesContext 例項中,生命週期將前進到渲染響應階段,並再次顯示同一頁面以及錯誤訊息。

階段 4:更新模型值

在 JSF 檢查資料有效後,它會遍歷元件樹並將相應伺服器端物件的屬性設定為元件的本地值。JSF 將更新與輸入元件的值屬性相對應的 Bean 屬性。

如果任何 updateModels 方法在當前 FacesContext 例項上呼叫 renderResponse,則 JSF 將移動到渲染響應階段。

階段 5:呼叫應用程式

在此階段,JSF 處理任何應用程式級事件,例如提交表單/連結到其他頁面。

階段 6:渲染響應

在此階段,如果應用程式使用 JSP 頁面,JSF 會要求容器/應用程式伺服器渲染頁面。對於初始請求,頁面上表示的元件將作為 JSP 容器執行頁面時新增到元件樹中。如果這不是初始請求,則元件樹已構建,因此無需再次新增元件。無論哪種情況,元件都將在 JSP 容器/應用程式伺服器遍歷頁面中的標籤時自行渲染。

渲染檢視內容後,將儲存響應狀態,以便後續請求可以訪問它,並且它可供恢復檢視階段使用。

廣告