BlogJava 聯系 聚合 管理  

          Blog Stats

          文章分類

          隨筆檔案

          文章檔案

          Design Pattern

          J2EE

          J2EE FrameWork


          紅玫瑰

          JSF VS Tapestry 全面比較(一)

          作者:   by Phil Zoio
          翻譯:   BlueCrystal
          來自:  
          http://www.theserverside.com/articles/article.tss?l=JSFTapestry

            目前應用很廣泛而且也很成熟的Struts應用開發框架,在未來幾年里將會逐漸淡出,其基于Action(action-based)的開發模型也將被活躍的java社區所推崇的新的開發模型所替代,對于java開源社區來說,追求完美是很多人的理想。在2000年初誕生的Struts以及其他類似的 MVC(Model View Controler)框架主要都是以操作為中心,且都是無狀態的開發模型,而現在,基于組件(component-based)和事件驅動(event- driven)的開發模型逐漸流行起來,在很多時候都成了Struts的有利競爭者,這其中來自jcp的jsr127-JavaServer Faces(JSF)以及來自apache的Tapestry是其中的佼佼者。

            在這篇文章中,我們將把這兩種框架JSF和Tapestry進行詳細的對比。我們的比較將涉及到兩種框架的設計、運行環境以及如何開發。比較的目的在于讓讀者了解這兩種框架各自的優缺點,以便于在自己的項目中,根據實際情況,選擇合適的框架。該文章的內容基于JSF1.1和Tapestry3.0.3 (在個別地方由于需要會談到Tapestry4.0)。


            JSF和Tapestry簡介
              
            JSF源于JCP(Java Community Process)的JSR127規范。Sun公司自己同時也對該規范提供了一個實現,目前的版本是1.1,而且該項目的設計者之一正是Struts的作者 Craig McClanahan。另外一個JSF的實現,就是Apache的一個項目MyFaces。目前,幾個主流的java開發工具廠商都在其java ide中提供了對jsf的支持,比如Sun、Oracle、IBM、Borland等,而且JSF的后續版本JSF1.2也將成為J2EE5.0的一個組成部分。
              
            Tapestry最初于2000年在SourceForge注冊,來自于Apple WebObjects,隨后,于2003年成為Apache的一個項目。與JSF不同的是,Tapestry并不是某一個jsr規范的實現,它僅僅是一個開源項目,當前版本是3.0.3。4.0版本預計也將在后面的一段時間內推出。
            JSF和Tapestry作為MVC框架,在一些基本特性上是非常類似的:

          •     它們都讓開發者不再直接與Servlet API打交道,而是讓開發者在一個更高的抽象層上思考問題;
          •     它們都將web頁面上的顯示元素綁定到一個java對象的某個屬性上,這些屬性可能是字符串、數字、日期或者其他類型,并且由該對象來維護其狀態。用戶在頁面上的交互行為(比如用鼠標點擊一個按鈕或者鏈接)都直接映射為java類中的一個事件處理方法;
          •     兩種框架都支持組件式的開發方式,并且開發的組件可被其他開發者重用。兩種框架都自帶一個標準組件庫,提供web開發的常見通用功能。

            在下面的章節里面,我們將會看見這兩個框架在各自的實現方式上是有很大區別的。對于大多數程序員來說,基于兩種框架做開發,將是非常不同的兩種體驗。

            Sidebar: 例子程序
            在下面本文提供了一個例子程序,該程序的代碼大部分都將在這片文章中做出詳細的描述。這個程序主要就是一個管理個人假期的工具,它的主要功能包括:
            * 一個home界面, 列出所有登記的假期,包括假期開始時間、天數以及一下描述信息;
            * 一個detail界面,用于瀏覽某一登記假期的詳細信息;
            * 一個new界面,用于添加一個假期信息。

            下面這幅圖展示了該程序的主體流程和功能:


            你可以從下列地址下載該程序基于不同框架的源代碼:
            
          JSF version
            Tapestry version

          posted on 2005-11-09 16:54 vaga 閱讀(147) 評論(0)  編輯  收藏 所屬分類: J2EE學習筆記
          主站蜘蛛池模板: 龙南县| 衡山县| 柳林县| 蒙自县| 旅游| 芦山县| 海城市| 桃源县| 枣阳市| 阿尔山市| 安义县| 新干县| 济南市| 永定县| 肇源县| 桐城市| 沂南县| 集安市| 汉沽区| 昭平县| 蓝山县| 迁安市| 平远县| 抚顺县| 自贡市| 铁力市| 杂多县| 安化县| 德令哈市| 宿迁市| 龙陵县| 呼和浩特市| 临潭县| 满洲里市| 耒阳市| 稻城县| 尼勒克县| 赞皇县| 佛学| 深州市| 香港|