欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Matrix - 與 Java 共舞 - Jakarta Struts 編程:使用Tiles框架(第三部分)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Spring4.0.6 Websocket詳細配置 之 遇到問(wèn)題
Struts教程
Struts標記庫
spring常用注解
HTML5 組件: 實(shí)現標準組件
jsp入門(mén)學(xué)習教程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久