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

JSF 與 MVC 架構:從 Model 1/2 到組件化事件驅動模型

     編輯:J2EE

Web 架構演進脈絡

階段特點缺點
JSP Model 1JavaBean + <jsp:useBean>Java 代碼混雜 HTML,難維護
Model 2 (MVC 變體)Servlet 控制器 + JSP 視圖事件模型過簡單,開發者負擔重
StrutsAction 替代 Servlet,ActionForm 承載資料程序化感強,行為與狀態分離不徹底
WebWork / Spring MVC更 OO,改進 Struts缺乏標準組件模型
JSF組件模型 + 豐富事件 + 狀態管理學習曲線較陡

JSF 如何更貼近真正 MVC

  • 模型層:Backing Bean 僅作視圖與模型間調停,業務邏輯委派給 Service/DAO
  • 視圖層:狀態化組件樹(UIViewRoot),Composite 模式管理,JSP/Facelets 綁定組件
  • 控制器層:FacesServlet 統一入口,生命週期自動處理轉換、驗證、事件分派

事件模型優勢

JSF 提供細粒度事件(ValueChangeEvent、ActionEvent、階段事件),而非單一「請求接收」。開發者專注業務邏輯,而非請求參數解析。

範例應用:計算機

  • 視圖:calculator.jsp(輸入)、results.jsp(輸出)
  • 控制器/Backing Bean:CalculatorController(受管 Bean)
  • 模型:Calculator 類別(純業務邏輯:加減乘除)
計算機 MVC 結構圖

關鍵設計原則

  1. Backing Bean 僅含薄薄的膠水代碼,禁止業務邏輯與持久化代碼
  2. 業務邏輯委派給模型物件(Service/DAO/Business Delegate)
  3. 視圖狀態由組件樹自動管理,無需手動處理 Session
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved