乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Matrix - 與 Java 共舞 - Jakarta Struts 編程:使用Tiles框架(第三部分)

       larrin 2006-03-18

      Jakarta Struts 編程:使用Tiles框架(第三部分)

      javaduke 發(fā)表于 2003-11-28
      點(diǎn)擊數(shù):5968 評論數(shù):0 評價(jià):14/8
      關(guān)鍵詞:Struts Tiles
      作者:        Chuck Cavaness
      原文:        http://www./pub/a/onjava/excerpt/progjakstruts_14/index3.html
      譯者:        blasterboy
              Email: zhangjy@bpusoft.com.cn
              MSN: sinogod928@hotmail.com

      這是Jakarta Struts編程一書中使用 Tiles框架系列的第三部分,主要闡述了如何使用標(biāo)記庫(包括:insert, definition, put, putList, add, get, getAsString, useAttribute, importAttribute, and initComponentDefinitions).

      Tiles標(biāo)記庫(The Tiles Tag Library)
      這一部分介紹Tiles 框架使用的JSP自定義標(biāo)記。表14-1列出了框架可用的標(biāo)記 。這些標(biāo)記與其他一些基于模板的框架所提供的標(biāo)記是非常相似的,但是Tiles框架中蘊(yùn)含著更豐富的功能。
      表 14-1: Tiles框架標(biāo)記庫中的標(biāo)記

      標(biāo)記名(Tag name)                             描述(Description)
      Add                 增加一個(gè)元素到環(huán)境列表中。
      definition                 創(chuàng)建一個(gè)Tiles組件定義。
      Get                 從請求作用域中得到內(nèi)容(content),這個(gè)內(nèi)容是put 標(biāo)
                       記所置入的。
      GetAsString       傳遞tile/component/template屬性指定的值到當(dāng)前的
                       JspWriter中。
      importAttribute  引入一個(gè)Tiles屬性到指定的上下文(context)中;
      initComponentDefinitions   初始化一個(gè)Tiles定義工廠。
      Insert                   插入一個(gè)Tiles組件。
      Put                   設(shè)置一個(gè)屬性到一個(gè)Tiles上下文中。
      PutList                    聲明一個(gè)列表,這個(gè)列表作為一個(gè)屬性被傳遞。
      useAttribute        在頁面中使用一個(gè)屬性值。

      insert 標(biāo)記
            insert 標(biāo)記是負(fù)責(zé)頁面中插入內(nèi)容。在一個(gè)Tiles布局中, insert標(biāo)記使用屬性值指定的內(nèi)容。在非Tile布局中,insert標(biāo)記是用來獲得一個(gè)框架(layout)并且使用put 標(biāo)記把內(nèi)容傳遞給布局中。
      表14-2列出insert 標(biāo)記的屬性:
      表 14-2:insert 標(biāo)記的屬性

      屬性名(Attribute name)                  描述(Description)
      attribute                  當(dāng)前Tiles /組件上下文的屬性名稱,這個(gè)屬性值是由
                       name 屬性來傳遞的。
      beanName        Bean 的名稱作為值來使用.Bean是從指定的內(nèi)容中獲得。
                       如果有的話,Bean可以從指定的上下文中獲得。否則就得
                       使用pageContext.findAttribute( ) 方法獲得。 如果
                       beanProperty 屬性已經(jīng)指定,也可以從相應(yīng)Bean屬性中
                       獲得這個(gè)值 。
                       如果,這個(gè)Bean(或Bean的屬性值)是某個(gè)屬性類
                       (Direct, Instance,等等)的實(shí)例, 那么插入過程要依照類
                       的類型而定。另外,調(diào)用Bean 的toString( ) 方法,并返
                       回值為String,并傳給name屬性。
      beanProperty    Bean 屬性(property)的名字,如果指定,那么這個(gè)值從
                       Bean的屬性(property)中獲得.
      beanScope        Bean的作用范圍,如果沒有指定,
                       pageContext.findAttribute( ) 方法可以使用。Bean的
                       范圍可以是任何的JSP, 組件(component),或者模板
                       (template)。在后兩者情況(組件,模板),bean 可
                       以在 Tiles (tile)/組件(component)/模板(template)
                       內(nèi)容中
      component        一個(gè)描述tile 或者 模板(template)URI的字符串. 模板
                       (template),頁(page)和 組件(component)屬
                       性必須有嚴(yán)格相同的行為
      controllerUrl      在頁被插入前,控制器(controller)的直接URI 。 這個(gè)URI
                               通常用來指示一個(gè)struct action. 這個(gè)控制器(action) 是用
                      來為inserted tile 準(zhǔn)備數(shù)據(jù)的。
                      只能有 一個(gè)controllerUrl 或 controllerClass
      controllerClass 頁面(page)被插入前,直接調(diào)用的一種控制(control)類
                      的類型。這個(gè)類是用來為inserted tile 準(zhǔn)備數(shù)據(jù)的。
                      只能有 一個(gè)controllerUrl 或 controllerClass 。這個(gè)類
                      實(shí)現(xiàn)或擴(kuò)展下列類之一:
                              org.apache.struts.tiles.Controller,
                              org.apache.struts.tiles.ControllerSupport,
                              或org.apache.struts.action.Action.
      definition                Insert定義的名稱。定義在一個(gè)集中的文件中被定義?,F(xiàn)
                      在,僅僅一個(gè)工廠(factory)的定義可以用這個(gè)屬性插入。
                      插入一個(gè)用definition定義的定義,用beanName="".
      flush                true 或者 false. 如果true, 當(dāng)前頁會在tile insertion.前
                      輸出流
      ignore                如果這個(gè)屬性設(shè)置為 true 并且name所指定的屬性不存在的
                      話,僅僅會返回一個(gè)什么都沒有寫得結(jié)果。初始值設(shè)置為
                      false,可以拋出一個(gè) runtime exception
      name               一個(gè)要被插入得實(shí)體(entity)的名字。查找按照下面的順
                     序 definition, attribute, 然后 page.
      page               一個(gè)表示tile 或者 template 的URI字符串。template,
                             page, 和 component 屬性要嚴(yán)格的有同樣的行為
      role               如果用戶是指定的角色,那么這個(gè)標(biāo)記才會起作用,否則,
                     這個(gè)標(biāo)記會被忽略掉,并且不會寫出任何內(nèi)容。
      template              一個(gè)表示tile 或者 template 的URI字符串。template,
                            page, 和 component 屬性要嚴(yán)格的有同樣的行為

      definition 標(biāo)簽
          definition 標(biāo)簽用bean的定義方法創(chuàng)建一個(gè)tile (template),這個(gè)新創(chuàng)建的bean在requested scope用一個(gè)id來標(biāo)識。definition 標(biāo)簽的有些語法和insert 一樣。新的定義可以擴(kuò)展在definition factory (XML file)中已經(jīng)描述過的定義,并且可以重載以前定義的參數(shù)。
      Table 14-3 列出了definition 標(biāo)簽支持的屬性

      屬性名            描述
      extends        可以用來擴(kuò)展的父定義,這個(gè)父定義在definitions factory被
                 定義了。
      id        定義bean的名稱,這個(gè)屬性是必需的
      page        要插入template/component 的URL 。和template.一樣。
      role        在插入一個(gè)定義前,進(jìn)行檢查role.如果當(dāng)前用戶并沒有定義這個(gè)
                 role,那么這個(gè)定義將不會被插入。再插入的時(shí)候進(jìn)行檢查,
                 而不是在定義的時(shí)候。
      scope        在新定義bean 的時(shí)候被創(chuàng)建。如果沒有指定,
                 默認(rèn)值是page scope.
      template        tile/component/template (a JSP page)的URL  .
      下面的片斷展示了如何在JSP中使用definition標(biāo)簽。

      <tiles:definition
        id="storefront.default"
        page="/layouts/storefrontDefaultLayout.jsp"
        scope="request">
          <tiles:put name="header" value="/common/header.jsp" />
          <tiles:put name="menubar" value="/common/menubar.jsp" />
          <tiles:put name="copyright" value="/common/copyright.jsp" />  
      </tiles:definition>

      一個(gè)完整的例子將在這章后面的"Declaring Definitions in a JSP Page" 中展示

      put 標(biāo)簽
          put 標(biāo)簽用來傳遞屬性到一個(gè)tile 組件。 這個(gè)標(biāo)簽只能在insert 或 definition 標(biāo)簽內(nèi)部使用。 put標(biāo)簽的值被value 屬性或者標(biāo)簽體指定。也經(jīng)常被指定值得類型。
      string: 文如其名
      page 或template: 內(nèi)容包含指定的URL. 名字通常以URL用.
      definition: 內(nèi)容從指定(from factory)的定義獲得. 名字以已定義的名字使用。如果type 已經(jīng)使用, 他就會被get 或 insert 標(biāo)簽插入到tile. 如果type 屬性沒有被指定,則內(nèi)容是不確定的untyped,除非它來自一個(gè)typed bean.
      提示: Setting direct="true" 與setting type="string" 是相同的.
      Table 14-4 列出了put 標(biāo)簽的屬性。

      屬性名                描述
      beanName        Bean 的名稱,和值(value)的使用方法一樣.Bean是從
                       特殊的內(nèi)容中獲得。如果有的話,還可以用
                       pageContext.findAttribute( ) 方法獲得。 如果
                       beanProperty 屬性已經(jīng)指定,可以從相應(yīng)Bean屬性中獲
                       得這個(gè)值 。
      beanProperty    Bean 屬性(property)的名字,如果指定,那么這個(gè)值從
                       Bean的屬性(property)中獲得.
      beanScope        Bean的作用范圍,如果沒有指定,
                       pageContext.findAttribute( ) 方法可以使用。Bean的
                       范圍可以是任何的JSP, 組件(component),或者模板
                      (template)。在后兩者情況(組件,模板),bean 可以
                      在 Tiles (tile)/組件(component)/模板(template) 內(nèi)
                      容中
      content                Content 在tile 范圍內(nèi)。 屬性相當(dāng)于value 屬性,增加是
                      為了于JSP template tags 兼容。.
      Direct                Content的控制方法: true意味著Content直接顯示; false
                              意味著content 被包含。 false 是默認(rèn)值。也是指定
                      content 類型的一種方法。如果 direct="true", content
                              是 "string"; 如果 direct="false", content 是 "page".
                              增加這個(gè)屬性是為了于JSP template tags 兼容。.
      Name                屬性的名稱(name).
      Role                如果用戶是指定的角色,那么這個(gè)標(biāo)記才會起作用,否則,
                      這個(gè)標(biāo)記會被忽略掉,并且不會寫出任何內(nèi)容。
      Type                content 的類型(type)。有效值
                      是"string", "page", "template", 或 "definition".
      Value                屬性的值,可以是String 或者 Object. 值是直接被分配
                      的。 (value="aValue") 或者從一個(gè)bean 獲得。一個(gè)
                      value, content, 或 beanName 一定存在。
      putList 標(biāo)簽
           putList 標(biāo)簽建立一個(gè)list,在 tile 中以值傳遞。 list 元素用add 標(biāo)簽增加。這個(gè)標(biāo)簽只能在insert 或definition 標(biāo)簽中使用。
      Table 14-5 列出putList 標(biāo)簽的屬性。

      屬性名        描述
      Name        List 的名稱。這個(gè)屬性是被要求的。

      add 標(biāo)簽
           add 標(biāo)簽是增加一個(gè)element 到周圍的list 中。這個(gè)標(biāo)簽只能在putList 標(biāo)簽中使用。這個(gè)值可以直接被分配。 (value="aValue") 或者從一個(gè)bean中獲得。 一個(gè)value 或beanName 必須被指定。
      Table 14-6 列出 add 標(biāo)簽的屬性。

      屬性名                   描述
      beanName              Bean 的名稱,和值(value)的使用方法一樣.Bean
                                     是從特殊的內(nèi)容中獲得。如果有的話,還可以用
                           pageContext.findAttribute( ) 方法獲得。 如果
                           beanProperty 屬性已經(jīng)指定,可以從相應(yīng)Bean屬性
                           中獲得這個(gè)值 。
      beanProperty        Bean 屬性(property)的名字,如果指定,那么這
                           個(gè)值從Bean的屬性(property)中獲得.
      beanScope        Bean的作用范圍,如果沒有指定,
                           pageContext.findAttribute( ) 方法可以使用。
                           Bean的范圍可以是任何的JSP, 組件
                           (component),或者模板(template)。在后兩者
                           情況(組件,模板),bean 可以在 Tiles (tile)/組件
                           (component)/模板(template) 內(nèi)容中content
                                     和value 屬性相同。增加這個(gè)屬性是為了于JSP
                                     template tags 兼容。
      direct                       Content的控制方法: true意味著Content直接顯示;
                                    false 意味著content 被包含。 false 是默認(rèn)值
      role                      如果用戶是指定的角色,那么這個(gè)標(biāo)記才會起作用,否
                          則,這個(gè)標(biāo)記會被忽略掉,并且不會寫出任何內(nèi)容。如果
                          add 標(biāo)簽在定義中被定義,則role不會起什么作用。.
      type                      content 的類型(type)。有效值
                          是"string", "page", "template", 或 "definition".
                                    如果type 屬性沒有指定,則 content 是沒有類型的
                          (untyped)除非它從一個(gè)bean 類型中獲得。.
      value                      增加的值??梢允荢tring 或者 Object.

      get 標(biāo)簽
            get 標(biāo)簽是從 tile 文中獲得內(nèi)容。并且把它插入到頁面中。
      Table 14-7 列出get 標(biāo)簽的屬性。

      屬性名        描述
      flush        true 或者 false. 如果true, 當(dāng)前頁會在tile insertion.前輸出流.
      ignore        如果這個(gè)屬性值被設(shè)置為 true 并且屬性被指定的名字不存在,
                 只會簡單的返回一個(gè)什么都沒有的結(jié)果。默認(rèn)值是false, 它可以引
                 起一個(gè)runtime exception 的拋出。
      name        從 tile 范圍內(nèi)得到的內(nèi)容的名稱。這個(gè)屬性是要求的。
      role        如果用戶是指定的角色,那么這個(gè)標(biāo)記才會起作用,否則,這個(gè)標(biāo)
                 記會被忽略掉,并且不會寫出任何內(nèi)容。

      getAsString 標(biāo)簽
           getAsString標(biāo)記負(fù)責(zé)查找tile屬性指定的屬性值,并作為字符串傳給當(dāng)前的JspWriter對象,一般使用toString()方法進(jìn)行轉(zhuǎn)換。如果不存在,將會拋出一個(gè)JSPException異常。表14-8列出了這個(gè)標(biāo)記的屬性:
      Table 14-8: getAsString標(biāo)記屬性

      屬性名        描述
      ignore        如果這個(gè)屬性值被設(shè)置為 true 并且屬性被指定的名字不存在,只
                 會簡單的返回一個(gè)什么都沒有的結(jié)果。默認(rèn)值是false, 它可以引起
                 一個(gè)runtime exception 的拋出。
      name        屬性的名稱(name). 這個(gè)屬性是要求的
      role        如果用戶是指定的角色,那么這個(gè)標(biāo)記才會起作用,否則,這個(gè)標(biāo)
                記會被忽略掉,并且不會寫出任何內(nèi)容。

      useAttribute標(biāo)記
          useAttribute 標(biāo)記在指定的范圍內(nèi)使用tile的屬性值聲明了一個(gè)Java 變量和一個(gè)屬性。這個(gè)變量和屬性由id指定一個(gè)名字,如果沒有指定,則是original name 。
      Table 14-9 列出了useAttribute tag的屬性。

      屬性名             描述
      classname       聲明變量的類名
      id                屬性和變量所聲明的名稱
      ignore                如果這個(gè)屬性值被設(shè)置為 true 并且屬性被指定的名字不存
                      在,只會簡單的返回一個(gè)什么都沒有的結(jié)果。默認(rèn)值是
                      false, 它可以引起一個(gè)runtime exception 的拋出。
      name                屬性的名稱(name). 這個(gè)屬性是要求的
      scope                聲明屬性的Scope.默認(rèn)是"page".
      importAttribute標(biāo)記

          importAttribute 標(biāo)記從tile 中插入一個(gè)屬性到被請求的作用域。name 和 scope 屬性是可選的。如果沒有指定,所有的屬性將引入到page作用域 中. 一旦引入,這個(gè)屬性可以像其他在JSP中的BEAN一樣使用。
      Table 14-10 列出了 importAttribute 標(biāo)簽的屬性
      Table 14-10: importAttribute標(biāo)記屬性

      屬性名        描述
      ignore        如果這個(gè)屬性值被設(shè)置為 true 并且屬性被指定的名字不存在,只
                 會簡單的返回一個(gè)什么都沒有的結(jié)果。默認(rèn)值是false, 它可以引起
                 一個(gè)runtime exception 的拋出。
      name        Tile的屬性名。如果沒有指定,則所有的屬性將被引入。
      scope        被引入屬性的scope屬性,默認(rèn)值"page".
      initComponentDefinitions標(biāo)記
            initComponentDefinitions標(biāo)記初始化定義工廠。
      Table 14-11: initComponentDefinitions標(biāo)記的屬性

      屬性名           描述
      classname    如果指定,值為創(chuàng)建和初始化工廠屬性的類名。
      file             定義文件名,此屬性是必需的

      作者簡介:
      Chuck Cavaness:畢業(yè)于Georgia Tech,獲計(jì)算機(jī)工程與科學(xué)學(xué)位,在醫(yī)療,銀行和B2B領(lǐng)域創(chuàng)建了許多Java企業(yè)系統(tǒng),同時(shí)也是O‘Reilly的Programming Jakarta Struts 和 Jakarta Struts Pocket Reference兩本書的作者。

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多