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