<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    爪哇一角

    共同探討STRUTS#HIBERNATE#SPRING#EJB等技術
    posts - 3, comments - 6, trackbacks - 0, articles - 99
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    九 UIComponent介紹

    Posted on 2009-01-20 14:49 非洲小白臉 閱讀(402) 評論(0)  編輯  收藏 所屬分類: JSF

    JSF中的組件樹概念尤其重要。組件樹大量使用了組合設計模式,為開發者提供了大量的包括日歷,表格,樹,列表等標準Web組件。

    同時JSF還提供了大量的組件支持類,例如轉換器(可以進行類型轉換),驗證器(進行數據驗證),繪制器(不僅僅可以使用HTML來繪制組件)。接下來我們分析一下用戶界面組件。

    所有組件都要實現javax.faces.component.UIComponent接口。這個接口定義了瀏覽組件樹,和支持Bean交互,管理組件(包括數據驗證,數據轉換和組件繪制)等任務和方法。

    JSF提供了一個組件基類:javax.faces.component.UICompoentBase。它實現了一些基本的默認的組件方法,給開發人員提供了方便,一般來說,你只需要重寫特定的方法即可。

    JSF使用了適配器模式幫助你使用最少的代碼完成大部分工作。

    如果你想創建組件,那么有三條路可以走:

    直接實現UIComponent接口

    繼承UIComponentBase類

    繼承已經存在的UIComponent實現

     

    已經存在的UIComponent組件類主要有如下:

           UIForm 表示一個輸入表單

     

           UICommand 表示一個可在激活時執行一個動作的命令組件

     

           UIOutput 表示一個可顯示值的組件

     

           UIGraphic 表示一個可顯示圖像的組件

     

           UIInput 表示一個可獲取和顯示用戶輸入的組件

     

           UIParameter 用于為父組件配置參數值

     

           UIPanel 表示一個面板(容器)組件

     

           UISelectItem 表示選擇組件中的一個選擇項

     

           UISelectItems表示選擇組件中的多個選擇項

     

           UISelectBoolean表示一個具有boolean值的組件

     

           UISelectOne 表示一個允許用戶在一系列值中選擇零個或一個值的組件

     

           UISelectMany表示一個允許用戶在一系列值中選擇零個或多個值的組件

     

    事實上,一個JSF組件包括了三個部份:Tag、Component 與Renderer。

    Tag就是之前使用的標簽,它的目的在于設定Component屬性,設定驗證器,設定方法綁定等。

     

    Component請求時,每個Component會根據自己的ID值,從請求中取得相應的值,綁定到Bean。當請求來到應用程序時,需要通過解碼(decode)來

    HTTP中的內容轉變成JSF組件需要的值,相對的,當JSF組件將值轉變成HTTP字串資料送到客戶端,供客戶端顯示,就稱為編碼(encode)。

    Component可以自己實現編碼,解碼,也可以委托Renderer來實現。

     

    Renderer是一個可替換的組件,Component可以搭配不通的Renderer,而不用自定義編碼,解碼工作,這樣Component可以達到重用。

    你也可以編寫自己的Renderer,如果你對前臺的顯示有自己獨特的要求的話。甚至可以讓你的系統在移動設備等不同的平臺上應用。

     

    javax.faces.component.UIComponent

    自訂Component所要繼承的父類別,但通常,您是繼承其子類別,例如UIInput、UIOutput等等。

     

    javax.faces.webapp.UIComponentTag

    自訂JSF標簽所要繼承的父類別,繼承它可以幫您省去許多JSF標簽處理的細節。

     

    javax.faces.context.FacesContext
    包括了JSF相關的請求資訊,您可以透過它取得請求物件或請求參數,或者是。

     

    javax.faces.application.Application物件

    包括了一個應用程式所共享的資訊,像是locale、驗證器、轉換器等等,您可以透過一些 工廠方法 取得相關的資訊。

     

    主站蜘蛛池模板: 在线观看免费a∨网站| 亚洲无mate20pro麻豆| 国产成人免费ā片在线观看 | 成年人在线免费观看| 成年女人A毛片免费视频| 亚洲乱码无人区卡1卡2卡3| 亚洲黄网站wwwwww| 亚洲精品国偷自产在线| 亚洲Av无码乱码在线znlu| 成年女人毛片免费观看97| 久久国产高潮流白浆免费观看| japanese色国产在线看免费| 亚洲成av人在线观看网站| 亚洲国产av高清无码| 亚洲成a人片在线观看中文动漫| 国产日产亚洲系列| 免费少妇a级毛片人成网| 免费看美女让人桶尿口| 免费国产黄线在线观看| 99在线精品免费视频九九视| 免费人成视频在线观看网站| 黄色网址在线免费| 久操视频在线免费观看| 男的把j放进女人下面视频免费| 国产伦精品一区二区免费| 免费精品久久久久久中文字幕 | 毛片a级毛片免费观看免下载| 2021精品国产品免费观看 | 亚洲精品国产成人| 亚洲精品一卡2卡3卡三卡四卡| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲国产精品无码专区影院| 亚洲精品乱码久久久久久自慰| 亚洲午夜久久久久久噜噜噜| 日韩精品亚洲aⅴ在线影院| 亚洲午夜日韩高清一区 | 黄网站免费在线观看| 97无码人妻福利免费公开在线视频| 手机看片国产免费永久| 免费观看久久精彩视频 | 亚洲国产成人久久精品app|