JSP開發(fā)框架JSF對比基于Servlet的Tapestry
JSF和Tapestry都是基于頁面組件技術(shù)的開發(fā)框架,但JSF基于JSP,是JSP架構(gòu)的JSP開發(fā)框架,開發(fā)維護起來非常麻煩。tapestry則不同,是基于servlet的一種完全頁面組件化的開發(fā)框架, 而且現(xiàn)在已經(jīng)非常成熟,目前已經(jīng)推出t4.0-beta2。
頁面開發(fā)走向組件化是一種越來越明顯的趨勢,這方面tapestry可以說是引導了這個方向,也許是sun太厲害,jsf一出生就得到大家的關(guān)注, 不過順此東風,tapestry的用戶社區(qū)比以前更加繁榮了:http://news.gmane.org/gmane.comp.java.tapestry.user
tapestry有很多范例精彩,參看它的官方網(wǎng)站:http://jakarta.apache.org/tapestry/
若想致力于web頁面的開發(fā),個人覺得jsp/serlvet是首要精通的,至于選擇框架,則是一件費精力的事情??蚣艿哪康氖菫榱撕喕_發(fā)流程,提高生產(chǎn)效率,典型的框架如turbine、struts、webwork、jsf、tapestry等。
如何選擇框架是一個經(jīng)久不衰的討論,沒有多年的實踐經(jīng)驗是難 以作出實際評價和最終抉擇的。愚以為turbine過于厚重,無論是開發(fā)速度還是運行速度都令人難以接受,2.4M1到現(xiàn)在快一年還是M!,運行起 來真是滿如蝸牛,打開一個頁面要等瀏覽器的地球要轉(zhuǎn)上半圈,這也許要歸功于velocity解析和沒有頁面緩存的功勞了。
還有就是擴展性、可維護性等,實際上都很差,象它的核心類Turbine,居然定義為final!實際開發(fā)起來還不如我自己實現(xiàn)的velocity+servlet+filter框架效率高 ,速度快。
struts,webwork實際都是jsp的MVC包裝,無法擺脫jsp頁面難以維護的煩惱,也許開發(fā)起來快,但維護呢?
還有就是美工人員,他們都得懂jsp。實際的mvc分工在頁面這塊還是打了折扣。做為JSP開發(fā)框架的JSF在一定程度上借鑒了tapestry的組件思想,但大項目應用中狂多的標簽封裝和定 義把你搞瘋也得把機器搞瘋,估算有兩大弊端:運行速度相對慢和頁面維護相對復雜。
最后是tapestry,唯一的難度是理解它的組件開發(fā)方法 ,理解的轉(zhuǎn)變就好比從過程開發(fā)到OO開發(fā)一樣,但對初學者無所謂,一張白紙總是容易上畫的。
選擇tapestry有如下幾大優(yōu)點:
1、最徹底的MVC開發(fā)框架,頁面代碼全部由HTML標準標簽組成,頁面美工人員無須了解特別的標簽定義。
2、可重用組件開發(fā)節(jié)省開發(fā)資源,一句話:越開發(fā)越輕松
3、優(yōu)秀的頁面流轉(zhuǎn)開發(fā)。傳統(tǒng)方式都是基于URL實現(xiàn)激活頁面流轉(zhuǎn),而tapstry除了此方式,你還可象開發(fā)普通java類一樣實現(xiàn)page頁面流,更 重要的是,還可由此實現(xiàn)頁面類的復用。
4、豐富的組件資源。除了官方維護的資源外,還可找到一大堆的tapestry組件庫。
5、超強的擴展性。tapestry是一個真正的開放性架構(gòu),說白了,你覺得哪個服務不爽,你就可寫個替代它。
6、生命力超強,不斷的自我更新、發(fā)展。tapestry4.0與3.0相比簡直就是另一個飛躍,如支持jdk1.5的Annotations,僅這點開源產(chǎn)品中目前 還只看到一個hibernate;支持portlet JSR-168,又一個順應潮流的web開發(fā)支持。規(guī)劃中的4.1將支持頁面靜態(tài)化,這不正是眾多開發(fā)人員的 另個期待嗎?
7、tapestry的開發(fā)人員穩(wěn)定。不是一個兩個人在那里單打獨斗,而是有一群人在開發(fā)和支持tapestry的進程。
8、tapestry技術(shù)成熟嗎?基于tapestry的軟件和大網(wǎng)站已經(jīng)很多了。
tapestry的優(yōu)點和帶給你的便利不是兩句話可講清楚的,還需要自己去多多體會。
【編輯推薦】