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

























