日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
簡(jiǎn)述JSF組件模型

組件模型的關(guān)鍵考驗(yàn)就是:能否從第三方供應(yīng)商購(gòu)買組件,并把它們插入應(yīng)用程序?與可購(gòu)買可視 Swing 組件一樣,也可以購(gòu)買 Java ServerFaces (JSF) 組件!需要一個(gè)好玩的日歷?可以在開源實(shí)現(xiàn)和商業(yè)組件之間選擇??梢赃x擇購(gòu)買一個(gè),而不是自行開發(fā)復(fù)雜的基于 Web 的 GUI 組件。

10年的岑鞏網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整岑鞏建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“岑鞏網(wǎng)站設(shè)計(jì)”,“岑鞏網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

JSF 擁有一個(gè)與 AWT 的 GUI 組件模型類似的組件模型??梢杂?JSF 創(chuàng)建可重用組件。但不幸的是,存在一個(gè)誤解:用 JSF 創(chuàng)建組件很困難。不要相信這些從未試過它的人們的 FUD!開發(fā) JSF 組件并不困難。由于不用一遍又一遍重復(fù)相同的代碼,可以節(jié)約時(shí)間。一旦創(chuàng)建了組件,就可以容易地把組件拖到任何 JSP、甚至任何 JSF 表單中,如果正在處理的站點(diǎn)有 250 個(gè)頁(yè)面,這就很重要了。JSF 的大多數(shù)功能來(lái)自基類。因?yàn)樗械姆敝毓ぷ鞫加?API 和基類完成,所以 JSF 把組件創(chuàng)建變得很容易。

貫穿這個(gè)系列,我一直在試圖幫助您克服造成許多 Java 開發(fā)人員逃避使用 JSF 技術(shù)的 FUD。我討論了對(duì)這項(xiàng)技術(shù)的基本誤解,介紹了它的底層框架和它最有價(jià)值的開發(fā)特性。有了這些基礎(chǔ)工作之后,我認(rèn)為您已經(jīng)可以采取行動(dòng),開發(fā)自己的定制 JSF 組件了。使用 JSF 的東西,我敢保證要比您想像的要更加容易,而且從節(jié)約的時(shí)間和精力上來(lái)說,回報(bào)如此之多,多得不能忽略。

這篇文章中的示例是用 JDK 1.5 和 Tomcat 開發(fā)的。請(qǐng)單擊頁(yè)面頂部的 示例代碼 下載示例源代碼。注意,與以前的文章不同,這篇文章沒有關(guān)聯(lián)的 build 文件,因?yàn)槲姨匾獍阉艚o您作為一個(gè)練習(xí)了。只要設(shè)置 IDE 或編譯器,把 /src 中的類編譯到 /webapp/WEB-INF/classes,并在 /webapp/WEB-INF/lib 中包含所有 JAR 文件(以及 servlet-api.jar 和 jsp-api.jar,它們包含在 Tomcat 中)。

JSF組件模型

JSF組件模型與 AWT GUI 組件模型類似。它有事件和屬性,就像 Swing 組件模型一樣。它也有包含組件的容器,容器也是組件,也可以由其他容器包含。從理論上說,JSF組件模型分離自 HTML 和 JSP。JSF 自帶的標(biāo)準(zhǔn)組件集里面有 JSP 綁定,可以生成 HTML 渲染。

JSF 組件的示例包括日歷輸入組件和 HTML 富文本輸入組件。您可能從來(lái)沒時(shí)間去編寫這樣的組件,但是如果它們已經(jīng)存在,那會(huì)如何呢?通過把常用功能變成商品,組件模型降低了向 Web 應(yīng)用程序添加更多功能的門檻。

組件的功能通常圍繞著兩個(gè)動(dòng)作:解碼和編碼數(shù)據(jù)。解碼 是把進(jìn)入的請(qǐng)求參數(shù)轉(zhuǎn)換成組件的值的過程。編碼 是把組件的當(dāng)前值轉(zhuǎn)換成對(duì)應(yīng)的標(biāo)記(也就是 HTML)的過程。

JSF 框架提供了兩個(gè)選項(xiàng)用于編碼和解碼數(shù)據(jù)。使用直接實(shí)現(xiàn) 方式,組件自己實(shí)現(xiàn)解碼和編碼。使用委托實(shí)現(xiàn) 方式,組件委托渲染器進(jìn)行編碼和解碼。如果選擇委托實(shí)現(xiàn),可以把組件與不同的渲染器關(guān)聯(lián),會(huì)在頁(yè)面上以不同的方式渲染組件;例如多選列表框和一列復(fù)選框。

因此,JSF 組件由兩部分構(gòu)成:組件和渲染器。JSF 組件 類定義 UI 組件的狀態(tài)和行為;渲染器 定義如何從請(qǐng)求讀取組件、如何顯示組件 —— 通常通過 HTML 渲染。渲染器把組件的值轉(zhuǎn)換成適當(dāng)?shù)臉?biāo)記。事件排隊(duì)和性能驗(yàn)證發(fā)生在組件內(nèi)部。

      

圖1

在圖 1 中可以看到數(shù)據(jù)編碼和解碼出現(xiàn)在 JSF 生命周期中的什么階段(到現(xiàn)在,我希望您已經(jīng)熟悉 JSF 生命周期了)。

更多組件概念

所有 JSF 組件的基類是 UIComponent。在開發(fā)自己的組件時(shí),需要繼承 UIComponentBase,它擴(kuò)展了 UIComponent 并提供了 UIComponent 中所有抽象方法的默認(rèn)實(shí)現(xiàn)。

組件擁有雙親和標(biāo)識(shí)符。每個(gè)組件都關(guān)聯(lián)著一個(gè)組件類型,組件類型用于在 face 的上下文配置文件(faces-config.xml)中登記組件??梢杂?JSF-EL (表達(dá)式語(yǔ)言)把 JSF 組件綁定到受管理的 bean 屬性??梢园驯磉_(dá)式關(guān)聯(lián)到組件上的任何屬性,這樣就允許用 JSF-EL 設(shè)置組件的屬性值。在創(chuàng)建使用 JSF-EL 綁定的組件屬性時(shí),需要?jiǎng)?chuàng)建值綁定表達(dá)式。在調(diào)用綁定屬性的 getter 方法時(shí),除非 setter 方法已經(jīng)設(shè)置了值,否則 getter 方法必須用值綁定獲得值。

組件可以作為 ValueHolder 或 EditableValueHolder。ValueHolder 與一個(gè)或多個(gè) Validator 和 Converter 相關(guān)聯(lián);所以 JSF UI 組件也與 Validator 和 Converter 關(guān)聯(lián)(請(qǐng)參閱 參考資料 獲得更多關(guān)于 JSF 驗(yàn)證和轉(zhuǎn)換的內(nèi)容。)

像表單字段組件這樣的組件擁有一個(gè) ValueBinding,它必須綁定到 JavaBean 的讀寫屬性。組件可以調(diào)用 getParent 方法訪問它們的雙親,也可以調(diào)用 getChildren 方法訪問它們的子女。組件也可以有 facet 組件,facet 組件是當(dāng)前組件的子組件,可以調(diào)用 getFacets 方法訪問它,這個(gè)方法返回一個(gè)映射。Facets 是著名的子組件。

【編輯推薦】

  1. JSF與Spring的集成
  2. 學(xué)習(xí)JSF的生命周期
  3. 在JBOSS服務(wù)器上使用Myfaces的JSF實(shí)現(xiàn)
  4. 選擇JSF的理由:從UI組件開始
  5. JSF中f:loadBundle標(biāo)簽的使用方法

網(wǎng)頁(yè)標(biāo)題:簡(jiǎn)述JSF組件模型
路徑分享:http://www.5511xx.com/article/dhdcgge.html