成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

選擇JSF的理由:從UI組件開始

開發 后端 前端
采用JSF技術后,Web編程如有神助。相對于原本的JSP而言,本文作者對于JSF是鐘愛有加。他認為在JSF中,頁面干凈了許多;而且更重要的是,JSF的功能更加強大。本文先從JSF的UI組件開始,介紹了JSF的優勢。

記得華為總裁任正非說過,華為是因為無知才走上通信產業之路的。我在2004年年中開始接觸JSF時,也是因為無知。幾乎沒有Java經驗,Web更是一片空白,寫了一個半吊子的JSP程序后,我居然判了JSP的死刑,鐵下心來鉆研我的JSF去了。無知者無畏,說得一點也不錯。

從JSP起步,第二級臺階,也許Struts是最合適的。沒有復雜的概念,沒有深奧的理論,容易理解,上手快,從JSP向Struts的過渡顯得特別自然。這是Struts流行的原因之一。如果當時請教過任何一個Java高手,我十有八九會以Struts作為我的JSP替代技術,并且很有可能成為Struts的發燒友。可是,機緣巧合,我選擇了JSF。 

正應了那句俗語:“傻人有傻福。”采用JSF技術后,Web編程如有神助,一個月時間,我和一個剛畢業的程序員寫出了一個規模不小的Web程序:126張數據庫表,346個JSP頁面,458K Java源程序,還包括84頁的《需求規格說明書》和189頁的《數據庫設計說明書》。即便是桌面應用,這樣規模的程序在一個月內完成,老板也該偷著笑了。其實,效率的提高,完全是JSF的功勞。正如Sun在JSF的規范中所宣稱的那樣,JSF極大地簡化了Java的 Web編程。

首先,在JSF中,頁面干凈了許多。無需聲明Javabean,也不用嵌入Scriptlet,沒有多余的符號,只是一些擴展標簽而已,看上去規范而不失優雅,讓人賞心悅目。程序員多半是完美主義者,眼睛里容不得丑陋的代碼,我認識的一些程序員,平時不修邊幅,可以整個冬天都穿同一件夾克,袖口磨得油光發亮,但他們的程序卻整潔得讓人嫉妒。

其次,JSP中趾高氣揚的Request和Response對象淡出了JSF。在典型的JSF應用中,程序員基本上沒有直接操作Request和Response對象的必要,因為框架隱藏了對這兩個對象的處理細節。不論是從Request中解碼參數,還是將數據編碼到Reponse中,都不需要程序員寫任何代碼,JSF知道該怎么做。當然,如果非要訪問Request,JSF的隱含對象為程序員提供了可能。

JSF的UI組件

UI組件是JSF最具特色的組成部分。與桌面程序的UI組件不同的是,JSF的UI組件是服務器端的,但是,在JSF框架的支撐下,這些服務器端的UI組件,在程序員看來和桌面程序的UI組件沒什么不同。我用的Jbuilder版本不支持JSF頁面設計的所見即所得,當我拖動一個UI組件到頁面上時,Jbuilder為我生成的,是一段標簽文本,跟隨著我的鼠標,放在指定的位置。一個服務端UI組件就是這樣誕生的,其在頁面上的表現形式也隨之確定。

沒有所見即所得當然有點遺憾,但對我來說,這已經足夠了,因為把組件的Value和后臺Javabean的屬性進行簡單的綁定,我就得到了所有需要的程序行為。頁面顯示和后臺數據的同步、用戶輸入的轉換、數據的有效性驗證、錯誤信息的提示以及UI組件狀態的保存和恢復,所有這一切不需要我寫任何代碼,JSF已經代勞了。

JSF的另一個特色是它的數據組件。我曾經很長時間使用PowerBuilder開發程序,熟悉PowerBuilder的程序員都知道,PowerBuilder最引人注目的是它的所謂數據窗口。并不好看的界面,笨拙的IDE,PowerBuilder單單憑借一個數據窗口,就吸引了大批程序員。PowerBuilder與數據庫是天生的一對,長期使用PowerBuilder的結果,我養成了以數據庫為中心的設計習慣。

這個習慣一直保持到今天,幾乎成了我的嗜好,前面提到的126張表,就是最好的例子,換成別的程序員,也許30張表就夠了。

所以,JSF的數據組件讓我一見鐘情。數據組件實際上包括兩個組件,一個是UIData,一個是UIColumn。JSF將數據表看成是由若干個列組成的一個表格,而行的數目取決于數據源中數據的條數。這與PowerBuilder的數據窗口殊途同歸。當然,數據組件不是直接從數據庫中取得數據(實際上,設計模式也不允許程序員這樣做),而是通過一個Javabean以resultSet的形式傳遞給數據組件。在JSP中,這樣的程序邏輯夠我折騰一陣的了,而在JSF中,這和生成一個文本輸入框一樣容易。

JSF數據組件的用途并不限于顯示數據庫表的內容,實際上,所有實現了List接口的對象都可以成為數據組件的數據源,這給Java的Web編程帶來了極大的便利。而且,如果你想直接編輯數據表中的數據,JSF也可以做到,只需以可讀可寫的方式,將UIColumn的value屬性和數據源中你想修改的屬性綁定在一起,用戶在網頁上所做的修改,就會自動保存到數據源中。這樣的功能,在JSP中,程序員都要深吸一口氣才敢動手的。我的第一個JSF程序,之所以能在一個月的時間內完成346個頁面,數據組件功不可沒。

【編輯推薦】

  1. JSF2.0通過最終投票 JSF已經實現所有特性
  2. JSF進行Web開發的三大優勢
  3. 新一代Java Web開發框架JSF訪談實錄
  4. 細說框架風云 JSF能否拯救WEB江湖
  5. 簡談JSF與Struts的功能比較
責任編輯:yangsai 來源: 網絡
相關推薦

2009-06-25 13:03:48

JSF的UI組件

2009-06-24 17:05:10

2009-06-22 15:02:47

StrutsJSF

2009-06-25 14:53:35

自定義UI組件JSF框架

2009-06-25 11:11:25

控制JSF切入點

2010-12-24 14:32:17

迪普

2009-06-29 13:22:19

JSF技術JSF組件

2009-06-22 13:27:01

JSF組件模型

2009-06-24 13:06:41

JSF組件Facelets

2009-06-25 15:09:34

選擇JSFESRI

2010-06-03 14:32:26

2010-03-03 13:40:14

Linux認證之路

2009-06-24 14:59:00

圖形bean組件JSF圖形組件

2009-06-22 13:41:58

FaceletsJSF組件

2009-06-26 11:15:08

JSF入手JSP

2023-04-20 15:53:05

綜合布線光纖

2009-06-24 16:30:21

JSF組件模型

2023-03-29 08:52:58

視覺Vue組件庫

2014-11-03 09:36:22

2009-07-06 17:57:22

JSF表格組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 波多野结衣一区二区 | 亚洲va在线va天堂va狼色在线 | 福利视频一区二区 | 国产欧美视频一区二区 | 夜夜摸夜夜操 | 午夜影院在线观看 | 国产精品一区二区久久久久 | 91视频在线网站 | 五月婷婷激情网 | 国产精品视频一二三区 | wwww.xxxx免费 | 午夜精品一区二区三区在线播放 | 一区二区三区四区不卡 | av性色全交蜜桃成熟时 | 美日韩视频 | 欧美黄色一级毛片 | 婷婷国产一区二区三区 | 亚洲国产中文字幕 | 91在线电影| 亚洲欧美一区二区三区国产精品 | 国产高清视频 | 九九看片 | 成人无遮挡毛片免费看 | 日韩av在线免费 | 国产日韩欧美在线播放 | 一区二区免费在线 | 一区天堂 | 亚洲综合无码一区二区 | 美女久久 | 欧美中文在线 | 久艹网站 | 久久九九99 | 日本精品一区二区三区在线观看视频 | 99爱在线 | 97精品超碰一区二区三区 | 欧美激情欧美激情在线五月 | 久久大全| 9久9久 | 秋霞av国产精品一区 | 日韩欧美精品 | 一本大道久久a久久精二百 国产成人免费在线 |