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