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,還有最新版只支援JSF1.2,假如你在使用JSF1.1,只能使用前一版(會缺少一些功能)。

我覺得使用這些ajax套件,有幾個重點是值得考慮的,第一,會不會改動到你原本的程式碼(當然新寫的就另當別論),假如改太多的話,似乎有點不符合經濟效益,這點RichFaces就做得蠻不錯的,它其中有一個標籤叫support,基本上只要在任何UI物件中加入這個標籤,這個UI物件馬上變成ajax enable,必如說,我現在有一個下拉式選單,當使用者選擇不同選項時,可能原本的表格或資料會重新更新,原本這個動作會更新全部的網頁,假如你加上這個標籤,你可以指定只更新這個表格,而不會更新全部的頁面,第二,功能是不是支援的夠多,或是說,你要的功能有沒有在裡面,有些人設計只是單純的 web 2.0,有些人則是設計企業內部複雜的系統,每個人需要ajax的物件不太一樣,雖然目前每個套件提供的功能都是大同小異,不過仔細比較還是會發現有些不一樣,所以在使用套件之前,一些必要的研究還是需要的,第三,支援的能力,這裡是說後面支撐這個套件的group是不是夠強,有沒有辦法長久支撐下去,假如一個bug給你一年才解決,或是兩三年才更新一次,我想這樣的套件還是不要用好,前面說過,RichFaces 是由Jboss所維護,Jboss後面的老闆是Red Hat,基本上還算一個有力的支持。

最後說一下,目前學習的資源,畢竟這個套件只是其中的一個語言中一個架構中的一個套件,我想走進書店想要在書架上看到一堆有關的書是蠻困難的,我覺得目前最豐富的資源是在它的官網上,官網右邊可以找到每一個物件的demo[2],API的文件,還有教學的文件,左邊的svn可以找到完整的demo source code,上面的論壇可以參與討論,下面的wiki可以找到一些使用技巧,畢竟使用套件,最主要的就是減少開發時間,並且降低開發的難度,我想這些資源對一個開發者應該是足夠了。

[1] 我想發揮這個特點的應該非ASP.Net莫數,我用過幾家JSF的發展工具,我覺得那些”拖””拉”功能並不是很好用。

[2] 你需要註冊red hat帳號才能看demo(免費的),不過很奇怪的是我用safari看會當機(不過RichFaces是支援safari的

RichFaces: http://www.jboss.org/jbossrichfaces/

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!