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

簡述JSF組件模型

開發 后端
本文介紹JSF組件模型,以及JSF組件由兩部分構成:組件和渲染器。

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

JSF 擁有一個與 AWT 的 GUI 組件模型類似的組件模型。可以用 JSF 創建可重用組件。但不幸的是,存在一個誤解:用 JSF 創建組件很困難。不要相信這些從未試過它的人們的 FUD!開發 JSF 組件并不困難。由于不用一遍又一遍重復相同的代碼,可以節約時間。一旦創建了組件,就可以容易地把組件拖到任何 JSP、甚至任何 JSF 表單中,如果正在處理的站點有 250 個頁面,這就很重要了。JSF 的大多數功能來自基類。因為所有的繁重工作都由 API 和基類完成,所以 JSF 把組件創建變得很容易。

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

這篇文章中的示例是用 JDK 1.5 和 Tomcat 開發的。請單擊頁面頂部的 示例代碼 下載示例源代碼。注意,與以前的文章不同,這篇文章沒有關聯的 build 文件,因為我特意把它留給您作為一個練習了。只要設置 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 自帶的標準組件集里面有 JSP 綁定,可以生成 HTML 渲染。

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

組件的功能通常圍繞著兩個動作:解碼和編碼數據。解碼 是把進入的請求參數轉換成組件的值的過程。編碼 是把組件的當前值轉換成對應的標記(也就是 HTML)的過程。

JSF 框架提供了兩個選項用于編碼和解碼數據。使用直接實現 方式,組件自己實現解碼和編碼。使用委托實現 方式,組件委托渲染器進行編碼和解碼。如果選擇委托實現,可以把組件與不同的渲染器關聯,會在頁面上以不同的方式渲染組件;例如多選列表框和一列復選框。

因此,JSF 組件由兩部分構成:組件和渲染器。JSF 組件 類定義 UI 組件的狀態和行為;渲染器 定義如何從請求讀取組件、如何顯示組件 —— 通常通過 HTML 渲染。渲染器把組件的值轉換成適當的標記。事件排隊和性能驗證發生在組件內部。

      JSF 組件和 JSF 生命周期

圖1

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

更多組件概念

所有 JSF 組件的基類是 UIComponent。在開發自己的組件時,需要繼承 UIComponentBase,它擴展了 UIComponent 并提供了 UIComponent 中所有抽象方法的默認實現。

組件擁有雙親和標識符。每個組件都關聯著一個組件類型,組件類型用于在 face 的上下文配置文件(faces-config.xml)中登記組件。可以用 JSF-EL (表達式語言)把 JSF 組件綁定到受管理的 bean 屬性。可以把表達式關聯到組件上的任何屬性,這樣就允許用 JSF-EL 設置組件的屬性值。在創建使用 JSF-EL 綁定的組件屬性時,需要創建值綁定表達式。在調用綁定屬性的 getter 方法時,除非 setter 方法已經設置了值,否則 getter 方法必須用值綁定獲得值。

組件可以作為 ValueHolder 或 EditableValueHolder。ValueHolder 與一個或多個 Validator 和 Converter 相關聯;所以 JSF UI 組件也與 Validator 和 Converter 關聯(請參閱 參考資料 獲得更多關于 JSF 驗證和轉換的內容。)

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

【編輯推薦】

  1. JSF與Spring的集成
  2. 學習JSF的生命周期
  3. 在JBOSS服務器上使用Myfaces的JSF實現
  4. 選擇JSF的理由:從UI組件開始
  5. JSF中f:loadBundle標簽的使用方法
責任編輯:佚名 來源: CSDN
相關推薦

2009-06-22 14:13:08

JSF入門

2009-06-22 15:52:15

JSF測試框架

2009-06-24 11:39:45

學習JSF

2009-06-22 13:48:45

JSF是什么

2009-06-23 09:53:10

JSF程序配置

2009-06-24 16:30:21

JSF組件模型

2009-06-24 13:06:41

JSF組件Facelets

2009-06-24 14:59:00

圖形bean組件JSF圖形組件

2009-06-22 13:41:58

FaceletsJSF組件

2009-06-25 13:03:48

JSF的UI組件

2009-06-29 13:22:19

JSF技術JSF組件

2009-06-24 17:05:10

2009-06-24 15:13:36

自定義JSF組件

2009-06-11 11:22:40

JSFJSPJSF的UI組件

2009-06-25 14:53:35

自定義UI組件JSF框架

2009-07-06 17:57:22

JSF表格組件

2009-09-23 17:56:45

JSF入門

2017-09-03 15:41:31

數據庫存儲分布式

2009-07-23 18:56:50

ASP.NET Ses

2009-06-25 11:11:25

控制JSF切入點
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一本大道久久a久久精二百 国产成人免费在线 | 国产精品欧美一区二区三区 | 亚洲一区二区三区四区五区中文 | 国产在线视频在线观看 | 欧美性高潮 | av资源在线看 | 男插女下体视频 | 综合二区 | 亚洲一区二区三区久久 | 亚洲精品91 | www日日日| 日韩不卡一区二区 | 亚洲成人999 | 中文字幕av网址 | 伊人久久精品一区二区三区 | 亚洲精品乱码久久久久v最新版 | 欧美日韩综合精品 | 欧美一级大片免费观看 | 91电影院| www.99精品| 成人在线视频看看 | 一区二区三区视频 | 欧美亚洲综合久久 | 日韩中出 | 欧美一区在线视频 | 综合婷婷 | 精品国产欧美 | 黄a网站 | 久久久久久久久久久久久91 | 欧美www在线 | 日本在线播放一区二区 | 久久久免费| 成人免费小视频 | 国产黑丝在线 | 一级做a爰片性色毛片视频停止 | aaa综合国产 | 福利片在线观看 | 在线看片网站 | 亚洲成人一区 | 涩涩视频在线看 | 天天艹天天干天天 |