JavaServer Faces (JSF) 是由 Java Community Process (JCP) 制定的 Web 應用框架標準,擁有明確定義的請求處理生命周期與豐富的組件層次結構,旨在簡化基於 Java 的 Web 用戶界面開發。憑藉可重用、可擴展、基於組件的 UI 框架,配合 RAD 等快速開發工具,開發者可透過拖放組件進行可視化編輯,將組件綁定數據源,並將客戶端事件交由伺服端處理,大幅降低開發難度與提升效率。
JSF 既是 Java Web UI 標準,又嚴格遵循模型-視圖-控制器 (MVC) 設計模式:
FacesServlet 統一處理用戶交互,管理導航與生命周期。這種清晰分離使應用更易維護、擴展,實現真正徹底的 MVC。
雖可依規范手工編寫 JSP、配置文件、搭建運行平台,但無法發揮可視化開發的高效優勢,通常僅用於結構分析。主流開發採用 RAD 等 IDE,利用拖放組件自動生成頁面代碼、綁定邏輯,程序員專注於業務擴展與調試。
JSF 提供豐富的伺服端 UI 組件 (輸入框、表格、選單等),在工具支持下可視化構建界面,自動處理數據驗證、事件處理。開發者在 JSP 中放置組件,綁定後台 JavaBean,工具自動生成對應 Java 類 (含 getter/setter、action 方法),極大減少樣板代碼。
模型層僅關注業務邏輯,不涉及表現細節。JSF 模型通過 JavaBean 實現,可在 JSF 頁面或 faces-config.xml 中聲明。手工部署時需將編譯後的類置於 WEB-INF/classes;使用 RAD 則自動處理部署細節。
控制邏輯集中於兩個配置文件:
web.xml:配置 FacesServlet,控制 JSF 生命周期。faces-config.xml:定義頁面導航規則、Managed Bean、轉換器、驗證器等。在 IDE 中此過程自動完成,手工配置亦相對簡單。
JSF 實現開發角色完全分離:頁面設計師專注視圖,應用開發者專注模型,流程控制由配置文件管理。JSF 還是開放標準,支持自定義組件、事件處理器、驗證器、轉換器,且呈現層不限於 JSP,可採用其他標記技術。建構於 Servlet API 之上,生命力旺盛,隨版本成熟將獲更廣泛應用。
JSFLoginDemo。src 建立 Messages.properties (國際化資源),寫入鍵值對。com.JSfdemo,新增 Managed Bean UserBean (Session 作用域),屬性 userName、passWord (皆 String)。faces-config.xml 自動生成的托管 Bean 定義。此流程展示了工具驅動下 JSF 開發的高效與規範化。