首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

JSF 應用程式請求處理生命週期:五階段流程與事件機制實戰 JSF 應用程式請求處理生命週期:五階段流程與事件機制實戰

     編輯:J2EE

五大階段總覽

JSF 規範定義 5 個主要階段(含事件處理):

  1. 恢復視圖
  2. 應用請求值;處理驗證
  3. 更新模型值;處理事件
  4. 調用應用程式;處理事件
  5. 進行響應;處理事件

階段非固定不可變,可透過 FacesContext.renderResponse()、responseComplete() 短路或重導向。

階段詳細解析

階段 1:恢復視圖

  • FacesServlet 提取 View ID(JSP 頁面名)
  • 新視圖:建立組件樹,綁定事件/驗證器,存入 FacesContext.viewRoot
  • 原始視圖:首次載入建立空視圖,可直接跳至渲染
  • Postback:從狀態儲存(Session/Client)重構組件樹

階段 2:應用請求值 + 處理驗證

  • 組件從請求參數/Cookie/Header 取值
  • immediate=false:稍後轉換;immediate=true:立即轉換+驗證
  • 轉換/驗證失敗 → 產生錯誤訊息入 FacesContext → 跳至渲染階段
  • 驗證通過 → 進入階段 3

階段 3:更新模型值

  • 僅更新與組件綁定的 Bean 屬性
  • 確保值已通過表單級驗證(業務規則驗證在後續階段)

階段 4:調用應用程式

  • 處理表單提交動作事件
  • 執行業務邏輯,回傳導航結果字串
  • faces-config.xml 導航規則匹配 from-outcome 決定下一頁

階段 5:進行響應

  • Renderer 輸出所有組件當前狀態
  • 錯誤訊息顯示、狀態儲存

角色分工

角色關注階段
應用開發者階段 2-3-4(取值、更新模型、業務邏輯)
組件開發者階段 1、5(樹構建、編碼渲染)

示例程式驗證

文章附帶 Maven 專案,透過 PhaseListener 記錄各階段執行順序,展示真實生命週期流向。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved