<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

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

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

      在這篇文章中,我們將把這兩種框架JSF和Tapestry進(jìn)行詳細(xì)的對(duì)比。我們的比較將涉及到兩種框架的設(shè)計(jì)、運(yùn)行環(huán)境以及如何開(kāi)發(fā)。比較的目的在于讓讀者了解這兩種框架各自的優(yōu)缺點(diǎn),以便于在自己的項(xiàng)目中,根據(jù)實(shí)際情況,選擇合適的框架。該文章的內(nèi)容基于JSF1.1和Tapestry3.0.3 (在個(gè)別地方由于需要會(huì)談到Tapestry4.0)。


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

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

      在下面的章節(jié)里面,我們將會(huì)看見(jiàn)這兩個(gè)框架在各自的實(shí)現(xiàn)方式上是有很大區(qū)別的。對(duì)于大多數(shù)程序員來(lái)說(shuō),基于兩種框架做開(kāi)發(fā),將是非常不同的兩種體驗(yàn)。

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

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


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

    posted on 2006-12-08 19:31 蘆葦 閱讀(231) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA
    主站蜘蛛池模板: 亚洲av无码有乱码在线观看| 亚洲国产亚洲综合在线尤物| 免费的黄色网页在线免费观看| 日本视频免费在线| 国产精品亚洲精品日韩动图| 国产精品酒店视频免费看| 自拍偷自拍亚洲精品播放| 国产精品色午夜视频免费看| 亚洲Aⅴ在线无码播放毛片一线天| 小小影视日本动漫观看免费| 美女被免费视频网站| 亚洲国产精品尤物yw在线| 国产精品九九久久免费视频| 国产AⅤ无码专区亚洲AV| 日本卡1卡2卡三卡免费| 亚洲精品免费在线观看| 99视频全部免费精品全部四虎| 亚洲情A成黄在线观看动漫软件| 免费无码黄网站在线观看| 免费观看亚洲人成网站| 亚洲综合最新无码专区| 丁香花在线视频观看免费| 1区1区3区4区产品亚洲| 最近的中文字幕大全免费版| 日韩一区二区三区免费播放| 亚洲国产精品无码中文字| 国产免费一区二区三区| www亚洲精品久久久乳| 亚洲日韩欧洲无码av夜夜摸| 久久久久久夜精品精品免费啦| 亚洲丰满熟女一区二区v| 国产又黄又爽又刺激的免费网址| 精精国产www视频在线观看免费| 久久亚洲国产成人精品性色| 成人免费视频一区| 国产一区二区三区免费观看在线| 亚洲欧洲视频在线观看| 亚洲成a人片在线观看日本麻豆| 午夜不卡久久精品无码免费| 亚洲 欧洲 日韩 综合在线| 亚洲一区精品无码|