首先單純使用JSP來開發項目需要考慮的東西太多,開發效率不高。 既然有更圓的免費輪子,干嘛不用?
JSF的開發理念是組件開發,但組件開發沒有一個好用的IDE開發工具怎么行,OperaMasks Studio目前覺得還不是非常的好用,我用OperaMasks框架做了一個簡單的頁面(也就是使用了它的TabLayout布局而已,外加一點文字),居然需要下載差不多800kb大小的文件,而且開發的過程中非常的小心,千萬不要出差錯,如果對JSF原理不是很熟悉的話,挑錯的過程很痛苦。很難對JSF組件進行個性化。雖然說JSF的Sun定義的JEE標準,但有時"標準"這東西不是靈丹妙藥,比如中國有這么多的股市專家,在網絡、電視上指點股市,然而還是有很多聽信了專家的話的股民也沒有賺到多少錢。
Structs 的架構設計的比較簡單,使用基于控制器導航和頁面導航,也很容易擴展,而且與FreeMarker結合可以很容易的自定義標簽庫,非常的方便,不過Structs 1.X配置的步驟太繁瑣了,需要定義對HTTP請求和響應的映射和所有的ActionForm對象等。Structs 2.X好像有所改觀,但是目前為止Structs 2.x的參考文檔好像不多,應用也不廣.
Spring MVC的架構設計的非常優秀,可以和其他框架比如JSP、JSTl、FreeMarker、Tiles方便的進行集成,提供了強大的依賴注入功能,不過要想使用它需要先配置一大堆的XML文件,這我可不喜歡,而且對AJAX支持不夠,這讓它損失了很多用戶。
GWT全名叫Google Web Toolkit,從名字上可以看出它目前定位為工具集,不是框架,單純使用GWT開發Web應用程序好像不是很順手。
Lift是基于Scala的一種Web開發框架,它的假想競爭對手是基于Groovy的Grails,不過目前來說還不是很成熟,知名度也不高,不過參考Scala的發展趨勢,Lift應該很有發展的潛力,值得關注。
其實我覺得Eclipse RAP 框架非常的不錯,是基于Qooxdoo的AJAX框架,從架構到實現,都非常的優秀,支持OSGI,和插件管理,可以像開發RCP一樣開發Web程序,從RCP遷移到RAP也不需要費很大周折,不過目前RAP面對的一個問題是系統的運行速度(如果摩爾定律仍然有效并且也能用于網絡寬帶的發展速度上的話,那么RAP絕對是一門值得投資的技術)。國外也有公司已經開發出了RAP的商業產品,我試用了下,非常的驚艷非常的棒.
現在輪到Wicket了,Wicket 是 Sun公司的Swing UI小組開發出的一種構建和測試動態 Web 頁面的簡化框架,是一種開源、輕量、基于組件的框架,只使用Java和HTML代碼,構建在Servlet API 之上,Wicket通過基于HTML的模板來界定HTML 頁面設計人員和 Java 開發人員之間的角色界線.模板可使用任何的HTML設計工具生成.,也就是說Wicket可以讓你有更多的精力放在應用程序的業務邏輯的實現上.如果你有SWT/Swing的開發經驗,對其他的Web框架知道的比較少又像向Web開發這方面發展的話,那么Wicket一定非常的適合你。而且Wicket的性能還不錯.提到Wicket就不得不提一下 Tapestry,這兩個框架很多地方相似,你可以在網上看到Tapestry PK Wicket 的帖子,不過有人說"Wicket是重構后的Tapestry".現在你知道該選誰了吧.當然Wicket也有缺點,要掌握Wicket需要了解Java,有面向對象編程思想的話掌握Wicket很容易
好了,我已經決定了,要開始研究Wicket了,嗯,還是研究一下它的源代碼先.
歡迎大家一起討論,說出你心中最理想的Web 框架