Java Web 框架眾多,讓人難以選擇:JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket,各有千秋。以下簡述優缺點:
優點:Java EE 標準(大市場需求、多工作機會)、上手快且相對容易、大量可用元件庫
缺點:大量 JSP 標籤、對 REST 與安全支援不佳、無統一實現(Sun 實現、Apache MyFaces、國內 OperaMasks 支援 AJAX、有開發工具支援)
優點:對覆蓋綁定、驗證提供生命週期管理、與眾多表示層技術無縫整合(JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF)、易於測試(歸功於 IoC)
缺點:大量 XML 配置、過於靈活(無共同父控制器)、無內建 AJAX 支援
優點:無需撰寫 XML 配置、良好學習文檔、社群成員熱心
缺點:社群較小、不如其他專案活躍、ActionBean 裡 URL 硬編碼
優點:架構簡單易擴展、標籤庫易用、利用 FreeMarker/Velocity 客製化、基於控制器或頁面導航
缺點:文檔組織差、過度關注新特性、Google 搜尋多為 Struts 1.x 文檔
優點:一旦學會極大提高生產力、HTML 模板(對頁面設計師有利)、每版本大量創新
缺點:文檔過於概念性不實用、學習曲線陡峭、發行週期長(每年較大升級)
優點:對 Java 開發者有利(非 Web 開發者)、頁面與顯示綁定緊密、社群活躍(有創建者支援)
缺點:HTML 模板與 Java 程式碼緊貼、需較好 OO 理解、Wicket 邏輯(什麼都用 Java 搞定)