傳統 JSP 需手寫 HTML、處理 Request/Response、Forward/Redirect、Session 管理。JSF 引入組件模型、事件驅動、聲明式導航,讓開發者像寫 Swing 一樣寫 Web。
value="#{loginBean.userName}" 自動雙向綁定。value="#{loginBean.password}"。action="#{loginBean.check}" 自動觸發驗證邏輯,依回傳 "success"/"failure" 導航至對應頁面,**零 URL 硬編碼**。| 特性 | 效益 |
|---|---|
| 自動型別轉換 | 表單字串 ↔ 後端 Java 型別 (Date, Number, Enum 等) 無感轉換 |
| 內建/可插拔驗證 | 長度、格式、正則、自定義 Validator,標籤層面聲明即可 |
| 組件模型 | 複雜 UI (表格、樹、彈窗) 封裝為可復用標籤庫 (RichFaces, PrimeFaces 等) |
| 數據與展現分離 | 同一後端數據,可渲染 HTML、PDF、Excel、Mobile 等多種視圖 |
| 事件驅動 | ActionListener, ValueChangeListener, PhaseListener 精準掛載業務邏輯 |
JSF 不是高不可攀的神技,而是**程序員的得力助手**。它替你操心 Request/Response、Forward/Redirect、Scope 管理、型別轉換、驗證、導航,讓你集中精力應對需求變更、專案時程、老板壓力。