日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
編寫JSF框架自定義UI組件

一、慎用自定義UI組件

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),柯橋企業(yè)網(wǎng)站建設(shè),柯橋品牌網(wǎng)站建設(shè),網(wǎng)站定制,柯橋網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,柯橋網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

雖然計(jì)算機(jī)軟件技術(shù)發(fā)展迅速,但在人機(jī)交互的方式卻保持相對(duì)穩(wěn)定。鼠標(biāo)和鍵盤自誕生之日起就沒有發(fā)生過什么實(shí)質(zhì)性變化,而我們?nèi)粘J褂密浖r(shí),也只是和諸如按鈕、菜單、輸入框以及下拉列表等有限的幾種UI組件打交道,任何一種新UI組件的產(chǎn)生,都意味著向幾十年來(lái)累積的習(xí)慣發(fā)起挑戰(zhàn)。

JSF框架缺省的UI組件通常能滿足你的需求,如果不能滿足,則有必要重新審視一下你的界面設(shè)計(jì),問問自己這幾個(gè)問題:
1. 是否用缺省的UI組件就能實(shí)現(xiàn)所需的人機(jī)交互功能?
2. 如果單個(gè)UI組件不能,幾個(gè)UI組件組合在一起是否可以?
3. 有沒有替代的界面設(shè)計(jì)方案,可以避開使用自定義UI組件?

即使答案都是否定的,也不要急于下編寫自定義UI組件的決心。別忘了,除了Sun的參考實(shí)現(xiàn)附帶的UI組件外,還有很多UI組件包供你選擇:
1. 開發(fā)工具如NetBeans在安裝時(shí)一般都會(huì)自動(dòng)安裝額外的UI組件包;
2. 專業(yè)的第三方廠商會(huì)提供種類繁多功能強(qiáng)大的UI組件包,例如MyFaces。JSF規(guī)范稱這種專業(yè)廠商為的Component Writer,是JSF建議的5種職能劃分中的一種。
不論是開發(fā)工具附送的,還是第三方廠商提供的,這些組件包有專門的開發(fā)和維護(hù)團(tuán)隊(duì),經(jīng)過了充分的測(cè)試和實(shí)戰(zhàn)考驗(yàn),文檔詳盡,與開發(fā)工具集成,有的更有技術(shù)支持,總之四個(gè)字:方便可靠。

如果這些都不能令你滿意,你還是一意孤行要編寫自定義UI組件,那么,在開始動(dòng)手之前,先了解一下自定義UI組件的不足:
1. 需要額外的編碼,讓你的設(shè)計(jì)變得復(fù)雜
2. 需要花費(fèi)精力測(cè)試,而如果測(cè)試不足,則有可能含有Bug
3. 可能隱藏潛在的性能問題
4. 如果你在一個(gè)團(tuán)隊(duì)中工作,你必須編寫足夠詳細(xì)的Java Doc,讓別人明白怎么用你的自定義UI組件
5. 如果你希望你的UI組件能夠集成到開發(fā)工具中,以便顯示在組件面板上,你必須面對(duì)工具相關(guān)的配置工作

二、編寫自定義UI組件的好處

當(dāng)然,嘗試編寫自定義UI組件也并非全無(wú)好處。對(duì)于JSF的初學(xué)者,這是深入了解JSF內(nèi)部細(xì)節(jié)的一種有效途徑。當(dāng)你成功編寫一個(gè)自定義UI組件并理解了每個(gè)代碼片段的含義后,你對(duì)JSF框架的理解肯定會(huì)向前邁進(jìn)一大步。畢竟,UI組件是JSF框架的核心。

另一個(gè)好處是你可以實(shí)現(xiàn)一些非標(biāo)準(zhǔn)的界面設(shè)計(jì),有時(shí)候這是必要的。例如,假設(shè)你是JS高手,你完全可以在自定義UI組件上用JS實(shí)現(xiàn)一些令人眩目的客戶端效果。

將若干個(gè)標(biāo)準(zhǔn)UI組件組合成一個(gè)有著某種特定功能的組件集合,是自定義UI組件的另一用處。典型的例子如文件上載組件,可由一個(gè)文本字段組件、一個(gè)“瀏覽 ”按鈕組件和一個(gè)“上傳”按鈕組件組成。這允許你一次鼠標(biāo)拖放就能將這些捆在一起的組件添加到頁(yè)面上,而不必逐個(gè)添加。更重要的是,你可以在自定義UI組件的內(nèi)部處理這些組件之間的相互協(xié)調(diào),而無(wú)需組件的使用者操心。例如,在文件上傳組件中,如果文本字段組件為空,則不允許點(diǎn)擊“上傳”按鈕。

三、寫這篇文章的用意

很多讀者寫郵件給我,提到JSF自定義UI組件的問題。雖然我私底下并不贊成JSF的初學(xué)者涉足這個(gè)相對(duì)比較復(fù)雜的編程領(lǐng)域,但程序員們打破沙鍋問到底的探索精神確實(shí)值得稱道。

從郵件中可以看出,大部分讀者都關(guān)注著JSF的發(fā)展,有些讀者實(shí)際接觸過JSF,用JSF做過項(xiàng)目,其中不乏對(duì)JSF已經(jīng)非常了解的程序員。鑒于自定義 UI組件在《JSF Web應(yīng)用開發(fā)實(shí)戰(zhàn)》一書中只是一筆帶過,為了使這本書能夠適合更多不同程度的讀者,我最終還是決定在博客上發(fā)表一些文章,系統(tǒng)地介紹一下JSF自定義 UI組件的相關(guān)知識(shí),作為對(duì)書中內(nèi)容的一個(gè)補(bǔ)充。

必須申明,寫這樣一個(gè)文章系列,不是為了演示JSF有多復(fù)雜。關(guān)于JSF的復(fù)雜性,已經(jīng)有太多的誤會(huì),個(gè)中原因,主要是JSF生命周期被談?wù)摰锰啵灾劣谧尦鯇W(xué)者望而卻步。其實(shí),讀過《JSF Web應(yīng)用開發(fā)實(shí)戰(zhàn)》一書的讀者一定發(fā)現(xiàn)了,JSF實(shí)際上是迄今為止最簡(jiǎn)單的、生產(chǎn)率***的Web應(yīng)用編程手段之一。JSF的復(fù)雜性體現(xiàn)在框架的實(shí)現(xiàn)本身,而這恰恰給作為框架使用者的程序員帶來(lái)了使用上的簡(jiǎn)單和方便。好比一臺(tái)自動(dòng)檔的車,雖然波箱比手動(dòng)檔要復(fù)雜得多,但顯然駕駛員更輕松了。

可以這樣說(shuō),自定義UI組件好比在波箱上動(dòng)手腳,至少對(duì)于JSF 1.2版本來(lái)說(shuō)是這樣。醞釀中的JSF 2.0據(jù)說(shuō)在這方面有很大的提升,編寫自定義UI組件將變得十分容易。我對(duì)此變化的理解是,Sun已經(jīng)不滿足于自動(dòng)波了,手自一體才是JSF 2.0的追求。

這個(gè)文章系列會(huì)包含多少篇文章,說(shuō)實(shí)話我現(xiàn)在心里還真沒底。可以肯定的是,我仍然會(huì)按照自己的寫作習(xí)慣去組織文字,一是由淺入深,二是注重實(shí)戰(zhàn),三是用例子說(shuō)話。還有,既然是對(duì)《JSF Web應(yīng)用開發(fā)實(shí)戰(zhàn)》一書的補(bǔ)充,我還是會(huì)結(jié)合NetBeans來(lái)寫,至于NetBeans的版本,在寫書時(shí)6.0.1是***版,那就還是用6.0.1 吧,雖然現(xiàn)在***版已經(jīng)是6.1了,好在與6.0.1相比變化不大,6.0.1的代碼在6.1中運(yùn)行應(yīng)該不會(huì)有太多問題。

【編輯推薦】

  1. 程序員必備Java API
  2. 對(duì)于JSF的一些思考
  3. 從JSF的切入點(diǎn)控制JSF
  4. 幾個(gè)JSF流行名詞的解釋
  5. 淺談JSF的UI組件

文章題目:編寫JSF框架自定義UI組件
文章地址:http://www.dlmjj.cn/article/djojseo.html