現在java web框架非常多林林總總讓很多人不知道選擇那個好JSFSpring MVCStripesStruts Tapestry和Wicket他們都是各有千秋面對各種問題八仙過海各顯神通
這裡就小話一下他們的優缺點
JSF優點Java EE標准這意味著有很大的市場需求和更多的工作機會上手快速並且相對容易有大量可用的組件庫缺點大量的JSP標簽對REST和安全支持不好沒有一個統一的實現既有SUN的實現又有Apache的實現——MyFaces國內的OperaMasks還支持AJAX以及有開發工具支持
Spring MVC優點對覆蓋綁定(overriding binding)驗證(validation)等提供生命周期管理與許多表示層技術/框架無縫集成JSP/JSTLTilesVelocityFreeMarkerExcelXSLPDF等便於測試——歸功於IoC缺點大量的XML配置文件太過靈活——沒有公共的父控制器沒有內置的Ajax支持
Stripes (現已發布版本)
優點不需要書寫XML配置文件良好的學習文檔社區成員很熱心缺點社區比較小不如其他的項目活躍ActionBean裡面的URL是硬編碼的
Struts 優點架構簡單——易於擴展標記庫很容易利用FreeMarker或者Velocity來定制基於控制器或者基於頁面的導航缺點文檔組織得很差對新特征過分關注通過Google搜索到的大多是Struts x的文檔
Tapestry優點一旦學會它將極大地提高生產率HTML模板——對頁面設計師非常有利每出一個新版本都會有大量的創新缺點文檔過於概念性不夠實用學習曲線陡峭發行周期長——每年都有較大的升級
Wicket優點對Java開發者有利(不是Web開發者)
頁面和顯示綁定緊密社區活躍——有來自創建者的支持缺點HTML模板和Java代碼緊挨著需要對OO有較好的理解Wicket邏輯——什麼都用Java搞定
就項目使用選擇而言如果是穩健起見structs是不錯的選擇如果小項目我更請傾向於Stripes夠簡單簡潔
如果想用概念比較新的框架可以選擇JSFtapestry它們都是基於組件的重用性比較好(當然開發者也要要設計得好)
From:http://tw.wingwit.com/Article/program/net/201311/12728.html