RichFaces - AJAX Enable
話說寫這個文章時,內心有點喘喘,我相信會來看這個 Blog 的人很多都是技術高手,介紹有點技術性的東西,感覺上有點在魯班門前弄大斧,不過我想現在語言、架構眾多,對於一些剛入門學習網站程式的人,可能會感到困惑,因此,希望這篇文章能對他們有所貢獻,當然,假如您是固中高手,請也不要吝嗇留下您寶貴的意見。
RichFaces 是一個架構在 JavaServer Faces 的一個 AJAX 套件,假如您想要用 Java 寫網站程式,JavaServer Faces(簡稱 JSF)算是一個目前蠻紅的架構,跟 Struts(也是另一個蠻紅的架構)不一樣的地方是,JSF 發展了很多 UI 物件,大家都知道寫網站程式,最煩得就是程式碼跟 HTML 標籤混在一起,有時候想改介面,但是怕會動到程式碼,於是 JSF 提供了很多自訂的標籤,這樣作有什麼好處呢?第一,這樣可以減少頁面出現程式碼的機會,讓美工可以更自由修改介面,而不需要擔心怕改到程式碼,第二,可以讓廠商發展類似 FrontPage 的發展工具,只要用“拖”“拉”就可以完成設計。[1]
不過目前 JSF 並沒有支援 AJAX,想要使用 AJAX 則需要加上其他的套件(當然,想自己寫也是可以的),RichFaces 則是其中的一個,它目前是由 JBoss 所維護,並且在去年合併了 Exadel 的 ajax4jsf(也是一個 AJAX 套件),目前最新版是 3.2.0(Released in March 31, 2008),對了,差點忘了說,它是一個 OpenSource 的計畫,使用上必須遵循 LGPL License,還有最新版只支援 JSF 1.2,假如你在使用 JSF 1.1,只能使用前一版(會缺少一些功能)。
我覺得使用這些 AJAX 套件,有幾個重點是值得考慮的,第一,會不會改動到你原本的程式碼(當然新寫的就另當別論),假如改太多的話,似乎有點不符合經濟效益,這點 RichFaces 就做得蠻不錯的,它其中有一個標籤叫 support,基本上只要在任何 UI 物件中加入這個標籤,這個 UI 物件馬上變成 AJAX Enable,必如說,我現在有一個下拉式選單,當使用者選擇不同選項時,可能原本的表格或資料會重新更新,原本這個動作會更新全部的網頁,假如你加上這個標籤,你可以指定只更新這個表格,而不會更新全部的頁面。第二,功能是不是支援的夠多,或是說,你要的功能有沒有在裡面,有些人設計只是單純的 Web 2.0,有些人則是設計企業內部複雜的系統,每個人需要 AJAX 的物件不太一樣,雖然目前每個套件提供的功能都是大同小異,不過仔細比較還是會發現有些不一樣,所以在使用套件之前,一些必要的研究還是需要的。第三,支援的能力,這裡是說後面支撐這個套件的開發團隊是不是夠強,有沒有辦法長久支撐下去,假如一個 bug 給你一年才解決,或是兩三年才更新一次,我想這樣的套件還是不要用的好,前面說過,RichFaces 是由 JBoss 所維護,JBoss 後面的老闆是 Red Hat,基本上還算一個有力的支持。
最後說一下,目前學習的資源,畢竟這個套件只是 Java 語言架構(framework)中的一個套件,走進書店想要在書架上看到一堆有關的書還是蠻困難的,我覺得目前最豐富的資源是在它的官方網站上,在網頁的右邊可以找到每一個物件的演示(demo)[2] API 的文件,以及教學的文件,左邊的 SVN 上可以找到完整的 demo 範例的原始碼,上方的論壇可以參與討論,下方的 Wiki 可以找到一些使用技巧,畢竟使用套件,最主要的就是減少開發時間,並且降低開發的難度,我想這些資源對一個開發者應該是足夠了。
[1] 我想發揮這個特點的應該非 ASP.Net 莫屬,我用過幾家 JSF 的發展工具,我覺得那些“拖”“拉”功能並不是很好用。
[2] 你需要註冊 RedHat 帳號(免費申請)才能看 demo,不過很奇怪的是我用 Safari 看會當機(不過 RichFaces 是支援 Safari 的)
RichFaces : http://www.jboss.org/jbossrichfaces
No responses yet


