下一代網(wǎng)絡(luò)開(kāi)發(fā)框架Stripes
軟件的展示層(presentation layer)是最麻煩的。以網(wǎng)絡(luò)應(yīng)用為例,軟件的最終輸出,須以符合HTML的要求。此外,尚需對(duì)HTML元素進(jìn)行修飾和定位,這就用到了CSS技術(shù)。如果進(jìn)一步,可能還需要用到DHTML和Ajax。也就是說(shuō),還需要應(yīng)用JavaScript技術(shù)。
而網(wǎng)絡(luò)框架的功能主要有兩個(gè):
1.把程序數(shù)據(jù)以后臺(tái)軟件組件(如ActionBean等)的形式注入到展示層,同時(shí)把展示層傳入的用戶(hù)動(dòng)作導(dǎo)入到后臺(tái)組件,激活業(yè)務(wù)處理等;
2.提供頁(yè)面瀏覽定義功能。簡(jiǎn)單的說(shuō),就是把展示層與后臺(tái)組件合理有效地組合到一起。
這就出現(xiàn)了一個(gè)問(wèn)題,由于展示層用到了較多的技術(shù),網(wǎng)絡(luò)框架應(yīng)該盡可能保持透明,不要扭曲甚至掩蓋了這些基本技術(shù)。然而Struts、JSF等顯然沒(méi)有滿(mǎn)足這一要求,它們提供了太多的標(biāo)簽(tag lib),它們不知道Tags就是API。大家學(xué)習(xí)HTML Tags是心甘情愿的,因?yàn)镠TML是標(biāo)準(zhǔn)和通用的;但學(xué)習(xí)個(gè)別框架的tags就很抵觸。如果打開(kāi)一個(gè)JSP源代碼,里面到處都是框架的tag,這就太讓人頭痛了??梢韵胂?,這個(gè)公司用Struts,那個(gè)公司用JSF,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)將是多么痛苦的一件事,這是兩套API啊!
另一個(gè)突出的問(wèn)題便是配置文件。自從XML興起,配置文件就成了第一頭痛的問(wèn)題??梢哉f(shuō),XML不論是對(duì)人還是對(duì)機(jī)器,都是不友好的。但Java社區(qū)過(guò)去片面追求靈活性(flexbility),低耦合(loose coupling)及其它諸多不切實(shí)際的華麗詞藻,XML配置文件滿(mǎn)天飛。以Struts為例,你可能要配置Form數(shù)據(jù),navigation數(shù)據(jù),validation數(shù)據(jù)等等。你可以想象,一個(gè)中等規(guī)模的網(wǎng)絡(luò)應(yīng)用的相關(guān)配置文件將會(huì)是如何龐大。這還沒(méi)有記入后臺(tái)其它組件的配置文件。這就會(huì)給你一種感受:寫(xiě)代碼容易,讓J2EE程序轉(zhuǎn)起來(lái)難,弄好配置文件更難。有人感嘆過(guò):我們是用Java寫(xiě)程序還是用XML來(lái)寫(xiě)程序?!
如果留心觀察,Spring的興起,無(wú)非是借了EJB2的東風(fēng)。因?yàn)楹笳咛爆嵙?,尤其是配置?wèn)題和資源注入方式。而EJB3的興起,則是實(shí)事求是,總結(jié)了EJB2的經(jīng)驗(yàn),吸取了Spring的優(yōu)點(diǎn)。EJB3最顯著的改進(jìn)便是將XML配置文件去除!而用annotation取而帶之,并提供合理的缺省值。
很明顯,下一個(gè)成功的網(wǎng)絡(luò)開(kāi)發(fā)框架,必然要在透明度、配置、后臺(tái)資源注入等方面有一個(gè)質(zhì)的飛躍。這當(dāng)然需要廣泛采用annotation技術(shù)。另一個(gè)最重要的要求,就是力求“簡(jiǎn)單”。
好了,說(shuō)了半天,似乎沒(méi)有涉及Stripes,其實(shí)不然。Stripes在配置(不需要自己的配置文件)、資源注入、validation、透明度等諸多方面均令人滿(mǎn)意,而且很容易與EJB3或Spring等結(jié)合。Stripes的tag及annotation的數(shù)量很少,也很容易上手。
Stripes:是一個(gè)視圖框架用于利用最新的Java技術(shù)來(lái)構(gòu)建Web應(yīng)用程序.它具有以下特點(diǎn):不需要對(duì)每一page/action進(jìn)行映射配置(ActionBeans將自動(dòng)被發(fā)現(xiàn),它利用注釋進(jìn)行配置),強(qiáng)大的綁定引擎用于構(gòu)建復(fù)雜并脫離請(qǐng)求參數(shù)(request parameter)的web對(duì)象,易于使用并可本地化的驗(yàn)證與類(lèi)型轉(zhuǎn)換系統(tǒng).可重復(fù)使用ActionBean作為視圖幫助類(lèi).支持一個(gè)form對(duì)應(yīng)多個(gè)事件.透明的文件上傳能力.支持持續(xù)開(kāi)發(fā)(比如在構(gòu)思你的ActionBean之前可以先構(gòu)建與測(cè)試JSP)等.
【編輯推薦】

























