Application:核心進入點,連接各模組,工廠模式建立實作ViewHandler:View 與 Renderer 調度,Facelets 即自訂實作NavigationHandler:頁面導航處理StateManager:View 狀態儲存/恢復(Session/Client 模式)FacesContext:請求範圍上下文,管理 Message、Application 參考、ResponseWriterExternalContext:封裝 ServletContext/PortletContextResponseWriter:伺服器端輸出 HTML/XML,所有 Renderer 依賴Lifecycle:管理 6 大階段執行順序LifecycleFactory:工廠建立實作FacesServlet:唯一入口 Servlet,轉換請求、調用 LifecycleConfigureListener)完成組件介面體系:
StateHolder:狀態保持,實作 saveState/restoreStateValueHolder:本地值支援、模型資料存取、轉換EditableValueHolder:可編輯值組件ActionSource/ActionSource2:動作事件源,支援 MethodExpressionNamingContainer:標記容器組件(如 dataTable、form)事件體系相對簡單,預設以單一 ActionListener 委派所有客戶端動作,多使用 MethodExpression 綁定。
model:增強 DataTable、SelectItems 支援render:RenderKit/Renderer 抽象,RenderKitFactory 管理,ResponseStateManager 協助狀態操作JSF 規範架構清晰分層,但實作眾多(Mojarra、MyFaces、PrimeFaces 等)且相容性參差不齊,導致生態系複雜。