翻譯:為什么是Wicket(三)

          Posted on 2007-06-08 07:55 Tommy Jian 閱讀(1297) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Wicket

          大部分現(xiàn)存的框架需要特定的HTML代碼

              JSP具有最深的侵入性,它允許將Java代碼直接嵌入Web頁(yè)面中。但是,上面列示的框架(除了Tapestry)都不同程度地針對(duì)HTML代碼引入了特殊的語(yǔ)法。

              因?yàn)樘厥庹Z(yǔ)法改變了單純而簡(jiǎn)單的HTML標(biāo)記的實(shí)質(zhì),而Web設(shè)計(jì)者對(duì)于這一點(diǎn)是十分的熟悉,所以特殊語(yǔ)法并不是十分得人心。而且預(yù)覽、編輯和理解這種包含特殊語(yǔ)法的HTML也是十分困難的事情。

              Wicket并沒(méi)引入任何新的HTML語(yǔ)法。相反,它通過(guò)Wicket命名空間(namespace)的標(biāo)準(zhǔn)兼容方式擴(kuò)展了HTML,這完全兼容XHTML標(biāo)準(zhǔn)。這意味這您可以使用Macromedia Dreamweaver、Microsoft Frontpage、Word、Adobe Go Live以及其他現(xiàn)有的HTML編輯器來(lái)編輯您的Web頁(yè)面,并且可以和Wicket的組件協(xié)同工作。為了實(shí)現(xiàn)這個(gè)目標(biāo),Wicket始終在Wicket命名空間內(nèi)使用單個(gè)id屬性(“wicket:id”)來(lái)標(biāo)識(shí)那些需要框架進(jìn)行特殊處理的標(biāo)簽。如果您并不喜歡將有Wicket命名空間修飾的標(biāo)簽和屬性展示給您的最終用戶(hù),通過(guò)簡(jiǎn)單的設(shè)置就可以完全消除它們,從而得到普通的與標(biāo)準(zhǔn)兼容的HTML代碼。

              HTML中沒(méi)有特殊的語(yǔ)法意味著設(shè)計(jì)者可以直接模擬頁(yè)面,而您可以在開(kāi)發(fā)的過(guò)程中直接使用這些頁(yè)面。向HTML頁(yè)面中添加Java組件就和設(shè)置組件的名稱(chēng)屬性一樣簡(jiǎn)單。然后,您可以直接將這些頁(yè)面交給Web設(shè)計(jì)人員,他們可以充滿(mǎn)信心地對(duì)其進(jìn)行修改。

              與其他的應(yīng)用框架相比,Wicket在各方面的分離上提供更多的支持。Web設(shè)計(jì)者在對(duì)應(yīng)用程序代碼不甚了解的情況下就可以編輯HTML(當(dāng)然,他們不能移除組件名稱(chēng)標(biāo)簽,而且不能任意改變組件嵌套的層次,其他的事情都是可以的)。另一方面,編程者只需要關(guān)注與HTML混在一起的Java組件,而不需要了解頁(yè)面的最終陳現(xiàn)是什么樣子。通過(guò)這種職能清楚的工作方式,每個(gè)人都可以工作得更為順暢。

          現(xiàn)存的框架易用性不好

              目前存在的大部分框架工具在對(duì)象模型方面做得不夠。在一些框架中,對(duì)象模型是通過(guò)特定的XML來(lái)定義的。這些語(yǔ)法令人生厭,而且還需要特定的工具來(lái)編輯這些配置信息。由于這些框架并不是單一的Java類(lèi)庫(kù),您就不能使用包含編輯器、調(diào)試器和編譯器的IDE工具來(lái)編輯它們。

              Wicket是化繁為簡(jiǎn)的代表。在學(xué)習(xí)Wicket的過(guò)程中不需要了解任何配置文件。Wicket就是組件結(jié)構(gòu)良好的普通的類(lèi)庫(kù)。在Wicket中,您的Web應(yīng)用程序與普通的Swing應(yīng)用程序類(lèi)似,而不是JSP應(yīng)用程序。如果您熟悉Java(特別是如果您熟悉Swing),那么您就已經(jīng)對(duì)Wicket有不少的了解了。

          現(xiàn)存的框架可復(fù)用性不好

              Tapestry和JSF雖然有可以重用的組件模型,但是您將發(fā)現(xiàn)與Wicket相比這并不是特別容易做到的事情。Wicket從設(shè)計(jì)之初就十分地注重組件的復(fù)用。在Wicket中,從現(xiàn)有的組件擴(kuò)展編制諸如SignInPanel或者AddressForm的復(fù)合組件是十分簡(jiǎn)單的事情。相對(duì)來(lái)說(shuō),針對(duì)瀏覽器的新特性編制新的組件也是十分容易的事情。Wicket的組件可以使用JAR格式進(jìn)行打包,直接通過(guò)庫(kù)引用的方式就可以實(shí)現(xiàn)重用——不需要任何配置文件!

              Web編程應(yīng)該更關(guān)注編程樂(lè)趣!

              這就是我編寫(xiě)Wicket的個(gè)人方面的目標(biāo)。現(xiàn)存的框架在實(shí)現(xiàn)開(kāi)發(fā)的直接性、快捷性和簡(jiǎn)易性方面真正地吸引我。我希望Wicket在Web應(yīng)用程序開(kāi)發(fā)的建議性和樂(lè)趣方面能夠邁出重要的一步。


              注:本文由Jonathan Locke編寫(xiě),相關(guān)權(quán)利由原作者享有。

          Feedback

          # re: 翻譯:為什么是Wicket(三)  回復(fù)  更多評(píng)論   

          2007-06-08 09:34 by 逸清楓
          翻譯的很好,學(xué)到了很多東西,謝謝

          您辛苦了
          主站蜘蛛池模板: 广灵县| 卫辉市| 水城县| 元江| 克拉玛依市| 宜春市| 明光市| 宁波市| 海阳市| 铅山县| 奉贤区| 临颍县| 讷河市| 垣曲县| 嘉义市| 余庆县| 河池市| 玛纳斯县| 镇巴县| 屏南县| 鸡东县| 元江| 池州市| 琼中| 邵阳县| 高州市| 铜陵市| 碌曲县| 夹江县| 枣强县| 会昌县| 平乐县| 海兴县| 宜阳县| 永平县| 洛隆县| 蒲城县| 辽阳市| 清徐县| 鸡泽县| 时尚|