JSF:Java Web開發(fā)的生旦凈末丑
我愛J2EE服務(wù)器端編程帶來的高可靠性、安全性和運(yùn)行期的高效穩(wěn)定性;
我恨以手工方式來編寫JSP頁面代碼,我恨基于有限的HTML界面組件進(jìn)行編程!
俺一向佩服的牛人袁紅崗說得好:現(xiàn)狀讓人有時(shí)懷念VB、Delphi可視化編程的時(shí)代,有時(shí)甚至?xí)w慕微軟的.net、Studio,因?yàn)樗鼈兊拇_使用起來很方便實(shí)用。
然而,Java世界所倡導(dǎo)的自由氛圍“一切源于技術(shù),一切源于開放”已進(jìn)入我的血脈!我追求一種自由和完美的理想技術(shù)主義,希望Java中也能有一個(gè)功能強(qiáng)大的可視化工具!
我想,其實(shí)我和各位兄弟一樣,要得很簡(jiǎn)單!
看了袁紅崗關(guān)于“Ajax+JSF雙劍合壁”的觀點(diǎn)后,說實(shí)話我是比較贊賞的。倘若Apusic果真能實(shí)現(xiàn)他們的承諾,那J2EE的Web開發(fā)將發(fā)生漸進(jìn)而深遠(yuǎn)的變化!!!
京劇臉譜大家都略有所知,分為生、旦、凈、末、丑5種,那么,就以它為例吧:
“生”:容器級(jí)的Ajax支持
目前有JSF + Ajax這種思路的,恐怕也不是一家,但很多第三方的JSF + Ajax實(shí)現(xiàn)是提供一個(gè)組件庫以及一個(gè)附加的Servlet 或Filter來處理Ajax請(qǐng);而Apusic號(hào)稱是直接由JSF容器來處理Ajax請(qǐng)求的,根據(jù)請(qǐng)求的類型來判斷這是一個(gè)正常的HTTP請(qǐng)求還是一個(gè) Ajax請(qǐng)求。Apusic JSF引擎號(hào)稱實(shí)現(xiàn)了一個(gè) AJAX Render Kit,可以在HTML文檔中嵌入Java Script代碼來實(shí)現(xiàn)Ajax特性,而替換Render Kit只需要修改配置文件即可。
“旦”:舉重若輕的JSF引擎
常規(guī)JSF容器每進(jìn)行一次客戶端與服務(wù)器端的響應(yīng)時(shí),都需要把所有的狀態(tài)傳來傳去,對(duì)系統(tǒng)運(yùn)行性能帶來較大的負(fù)面影響,而通過Apusic JSF號(hào)稱的Ajax特性,能夠只把發(fā)生變化的數(shù)據(jù)打包成Ajax請(qǐng)求發(fā)送給服務(wù)器端,而服務(wù)器端也只會(huì)將發(fā)生變化的數(shù)據(jù)打包成Ajax應(yīng)答,從而大大提升系統(tǒng)的運(yùn)行效率。并且,傳統(tǒng)的JSF請(qǐng)求應(yīng)答將刷新整個(gè)頁面,而Apusic JSF號(hào)稱將只更新發(fā)生變化的客戶端組件,從而給客戶帶來更好的人機(jī)體驗(yàn)。
“凈”:讓W(xué)eb開發(fā)更輕松
以前要寫Ajax應(yīng)用要寫很多Java Script代碼,開發(fā)、調(diào)試、維護(hù)這些 Script腳本都相當(dāng)煩瑣,如采用Apusic JSF技術(shù),就不再需要編寫任何Java Script代碼,引擎已經(jīng)幫你生成了這些代碼。Apusic JSF所有的標(biāo)準(zhǔn)組件都是支持Ajax的,某些第三方組件可能本身并不支持 Ajax,但使用一個(gè)名為的標(biāo)簽,可以立即將這個(gè)第三方組件轉(zhuǎn)換成Ajax Enabled。
“末”:豐富的UI組件
據(jù)稱Apusic JSF還提供了一個(gè)名為的標(biāo)簽,可以接受在發(fā)送和完成一個(gè)Ajax請(qǐng)求時(shí)觸發(fā)的事件,缺省的實(shí)現(xiàn)是在發(fā)送 Ajax請(qǐng)求之前顯示一個(gè)HTML片段,在完成Ajax請(qǐng)求之后顯示另一個(gè)HTML片段,這些HTML片段可以包含文字和圖片。此外還實(shí)現(xiàn)了一個(gè) 標(biāo)簽,可以以RPC方式調(diào)用服務(wù)器端Java對(duì)象的某個(gè)方法。
“丑”:隨意拖曳的可視化設(shè)計(jì)
據(jù)Apusic開發(fā)部的人說,用Apusic JSF還包含其它一些差異特性,包括:控件的換膚功能,控件對(duì)IE、Mozilla(Firefox)、Opera等多瀏覽器的支持,以及強(qiáng)大的布局功能等。通過Apusic JSF,實(shí)現(xiàn)UI界面其實(shí)并不復(fù)雜,只需要通過簡(jiǎn)單的幾行代碼,就能夠完成復(fù)雜的UI界面。
在JSF規(guī)范中,有這樣一句話:“JSF is designed to be tooled”。換言之,JSF規(guī)范從設(shè)計(jì)初開始,就非常強(qiáng)調(diào)對(duì)工具支持的依賴。幸運(yùn)的是,目前對(duì)JSF提供支持的開發(fā)工具也逐漸豐富了起來,包括Oracle JDeveloper、Sun Java Studio Creator等等。金蝶Apusic宣稱也同樣提供了一個(gè)基于Eclipse的集成式開發(fā)環(huán)境:Apusic Studio,并通過該工具,能夠給JSF的開發(fā)帶來良好的支持,包括:語法加亮、代碼輔助、斷點(diǎn)調(diào)試、可視化的設(shè)計(jì)等等。
總之:廠商靠產(chǎn)品說話。聲勢(shì)炒的這么大,Apusic到底有多少實(shí)力和老袁的一世英名就看這次了,呵呵。在中國作系統(tǒng)軟件很不容易,希望Apusic的這個(gè)Java Web開發(fā)的京劇臉譜能拿出點(diǎn)真東西。
【編輯推薦】