企業級定義
- 健壯、可擴展、易測試、業界驗證
- 易用、易開發、支援 TDD
- 工具支援匹配團隊技能
- 良好擴展性:組件化與抽象層應對複雜度增長
JSF 滿足以上:大量採用站點、廠商工具組件支援、TDD 實踐驗證。
AJAX 定義與 Comet
- AJAX:非同步機制動態更新頁面外觀行為
- Comet:AJAX「推」模式,異步伺服器主動推送內容,ICEsoft 已實作
為什麼 JSF + AJAX?
JSF 設計特性天生協同 AJAX:
- 組件狀態伺服器端保持
- 生命週期階段精確控制
- 渲染模型封裝客戶端差異
五種整合層級(遞增)
- Naked AJAX:Frank Zammetti 術語,全手寫,理解底層但陷入框架開發沼澤
- JS 框架:Dojo/DWR/Prototype,仍需侵入性整合代碼
- JSF AJAX 擴展:Dynamic Faces、ICEfaces、Ajax4jsf (RichFaces)、BackBase、JackBe
- 帶 AJAX 的 JSF 組件:開箱即用,jsfmatrix.net 比較
- JCP 官方標準:專家組整合擴展優點入規範,但進度緩慢
Dynamic Faces 核心優勢
- 利用 JSF 1.2 新特性正確處理上下文敏感交互
- 零 JavaScript 開發,純 JSF API
- 允許手寫 JS 實現複雜操作
- 已納入 Sun Web Developer Pack(0.1 版)
MCP 自動化測試
Mozilla Control Program (MCP) 使用 JUnit/TestNG 自動測試 AJAX 應用,早期 Alpha 技術源自 mozilla.org 經驗。
企業級 Web 應用必備清單
- 資料轉換/驗證
- 頁面流程控制
- 資料庫整合 (JPA/Hibernate)
- 國際化/本地化/無障礙 (Section 508)
- 單元/系統測試可測性
- 用戶體驗
AJAX 歷來讓無障礙與測試成為痛點,JSF + AJAX 方案可同時解決。
Struts/Tapestry/JSF 重述(文中附錄)
同文章 76198 比較內容,重申 JSF 為中庸之選。