新聞中心
介紹

目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、香格里拉網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
JavaServer Faces(JSF)提供可擴展的組件模型,開發(fā)人員可以創(chuàng)建可重用的組件,使用這些自定義組件提高開發(fā)效率和降低開發(fā)成本。雖然對于定制和重用而言 JSF組件模型非常強大,但是開發(fā)人員普遍認為開發(fā) JSF 自定義組件并不容易,因為通常至少需要熟悉 JSF encode/decode 和 state holder 的內(nèi)部機制并覆蓋相應的方法,如 encodeBegine()、decode()、saveState() 和 restoreState() 等,對于開發(fā)復雜的自定義組件,甚至需要深入理解更多的接口,如 NamingContainer、StateHolder、EditableValueHolder 和 ActionSource 等接口。
然而,重用 JSF 標準組件的功能可以極大地簡化自定義組件的開發(fā),尤其對于自定義復合組件更是如此。在大部分情況下,我們可以重用 JSF 框架已經(jīng)提供的標準渲染器、狀態(tài)管理、事件監(jiān)聽器、轉(zhuǎn)換器和驗證器。已有的文章或書籍對如何重用這些標準功能涉及很少,本文基于重用的策略提出快速開發(fā) JSF自定義復合組件的原則和技巧。
本文首先總結(jié)了 JSF組件開發(fā)的通用原則,然后通過一個例子(Value Scroller 自定義復合組件)的開發(fā)詳解說明了哪些標準功能可以重用以及如何重用,以達到簡化 JSF自定義復合組件開發(fā)的目的。
原則和技巧
開發(fā) JSF自定義復合組件主要有兩個原則,一方面強調(diào)重用已有的標準組件;另一方面如何確保自定義組件易于重用。
1、盡可能的重用標準組件的功能和實現(xiàn)
傳統(tǒng)的自定義復合組件開發(fā)建議完全覆蓋實現(xiàn) encode/decode 邏輯,但這樣做耗費時間而且容易出錯。毫無疑問,我們可以通過重用標準組件的渲染器等機制減少甚至根本不用自行編寫這部分代碼。另外,為了實現(xiàn)靈活的配置和使用,自定義復合組件通常需要提供很多屬性,我們需要寫很多代碼來處理這些屬性的讀寫和狀態(tài)管理。實際上,我們可以簡單地把自定義復合組件的屬性傳遞給它自身包含的標準組件,由已有的標準代碼去處理這些屬性,而不用重復寫這些代碼。
2、清晰地分離組件類、標簽類和模型類
JSF組件模型建議在組件類、標簽類和模型類之間有明確清晰的責任分配,以便于重用和擴展。組件類不應該依賴于javax.faces.component.html 包,因為組件類不僅可以用于 HTML,而且還應該可以重用于其它標記語言(如 WML)。也就是說組件類不應該直接引用 javax.faces.component.html 包內(nèi)的 HTML 組件。例如,在你的組件類中創(chuàng)建一個 HtmlCommandButton 的實例是不可取的,你應該考慮用 javax.faces.component 包中的 UICommand .另一方面,如果你希望你的模型類可以重用于不同的 Web 框架,那么你的模型類就不應該依賴于 JSF 的任何包,即模型類只表示業(yè)務對象而不包含任何用戶界面相關的組件、數(shù)據(jù)和狀態(tài)。
基于這些傳統(tǒng)方式和本文介紹的原則和技巧,我們可以發(fā)現(xiàn)基于重用的開發(fā)策略會極大簡化 JSF自定義復合組件的編寫。開發(fā) JSF自定義組件通常需要如下 3 個步驟。
1、擴展 UIComponent
傳統(tǒng)方式:創(chuàng)建一個類,擴展 UIComponent,保存組件狀態(tài),在 faces-config.xml 中注冊組件
重用技巧:
◆選擇 UIPanel 作為布局容器,重用標準組件作為復合組件的子組件。
◆實現(xiàn)內(nèi)部動作監(jiān)聽器。
2、定義渲染器或者內(nèi)聯(lián)實現(xiàn)它
傳統(tǒng)方式:覆蓋實現(xiàn) encode/decode,在 faces-config.xml 中注冊渲染器。
重用技巧:重用標準渲染器類型。
3、創(chuàng)建自定義標簽,繼承 UIComponentTag
傳統(tǒng)方式:返回渲染器類型和組件類型,設置 JSF 表達式屬性
重用技巧:傳遞屬性值給作為子組件的標準組件。
網(wǎng)頁名稱:編寫JSF自定義復合組件的原則和技巧
文章URL:http://m.5511xx.com/article/djejjgo.html


咨詢
建站咨詢
