??xml version="1.0" encoding="utf-8" standalone="yes"?>视频一区二区中文字幕,国产亚洲精品综合一区91,欧美一区二区三区精品电影http://www.aygfsteel.com/chenruhan/articles/35449.htmlchenruhanchenruhanWed, 15 Mar 2006 09:03:00 GMThttp://www.aygfsteel.com/chenruhan/articles/35449.htmlhttp://www.aygfsteel.com/chenruhan/comments/35449.htmlhttp://www.aygfsteel.com/chenruhan/articles/35449.html#Feedback0http://www.aygfsteel.com/chenruhan/comments/commentRss/35449.htmlhttp://www.aygfsteel.com/chenruhan/services/trackbacks/35449.htmlq是Jakarta Struts~程一书中使用 Tiles框架pd的第三部分,主要阐述了如何用标记库(包括Qinsert, definition, put, putList, add, get, getAsString, useAttribute, importAttribute, and initComponentDefinitions).

Tiles标记库(The Tiles Tag LibraryQ?/B>
q一部分介绍Tiles 框架使用的JSP自定义标记。表14-1列出了框架可用的标记 。这些标C其他一些基于模板的框架所提供的标记是非常怼的,但是Tiles框架中蕴含着更丰富的功能?BR>
?nbsp;14-1: Tiles框架标记库中的标?/DIV>
标记名(Tag nameQ?nbsp;                     描述QDescriptionQ?BR>Add          增加一个元素到环境列表中?BR>definition          创徏一个Tileslg定义?BR>Get          从请求作用域中得到内容(contentQ,q个内容是put ?BR>                 记所|入的?BR>GetAsString       传递tile/component/template属性指定的值到当前?BR>                 JspWriter中?nbsp;
importAttribute  引入一个Tiles属性到指定的上下文(context)中;
initComponentDefinitions   初始化一个Tiles定义工厂?BR>Insert            插入一个Tileslg?BR>Put            讄一个属性到一个Tiles上下文中?BR>PutList             声明一个列表,q个列表作ؓ一个属性被传递?BR>useAttribute        在页面中使用一个属性倹{?BR>
insert 标记
      insert 标记是负责页面中插入内容。在一个Tiles布局? insert标记使用属性值指定的内容。在非Tile布局中,insert标记是用来获得一个框ӞlayoutQƈ且用put 标记把内容传递给布局中?nbsp;
?4-2列出insert 标记的属性:
?nbsp;14-2:insert 标记的属?/DIV>
属性名(Attribute name)           描述(Description)
attribute           当前Tiles /lg上下文的属性名Uͼq个属性值是?BR>                 name 属性来传递的?BR>beanName        Bean 的名UC为值来使用.Bean是从指定的内容中获得?BR>                 如果有的话,Bean可以从指定的上下文中获得。否则就?BR>                 使用pageContext.findAttribute( ) Ҏ获得?nbsp;如果
                 beanProperty 属性已l指定,也可以从相应Bean属性中
                 获得q个?nbsp;?BR>                 如果Q这个BeanQ或Bean的属性|是某个属性类
                 (Direct, Instance,{等)的实? 那么插入q程要依照类
                 的类型而定。另外,调用Bean 的toString( ) ҎQƈq?BR>                 回gؓStringQƈ传给name属性?nbsp;
beanProperty    Bean 属性(propertyQ的名字Q如果指定,那么q个g
                 Bean的属性(propertyQ中获得.
beanScope        Bean的作用范_如果没有指定Q?nbsp;
                 pageContext.findAttribute( ) Ҏ可以使用。Bean?BR>                 范围可以是Q何的JSP, lgQcomponentQ,或者模?BR>                 QtemplateQ。在后两者情况(lgQ模板)Qbean ?BR>                 以在 Tiles (tile)/lg(component)/模板QtemplateQ?BR>                 内容?BR>component        一个描qtile 或?nbsp;模板QtemplateQURI的字W串. 模板
                 QtemplateQ,(pageQ和 lgQcomponentQ属
                 性必L严格相同的行?BR>controllerUrl      在页被插入前Q控制器(controller)的直接URI ?nbsp;q个URI
                         通常用来指示一个struct action. q个控制?action) 是用
                来ؓinserted tile 准备数据的?BR>                只能?nbsp;一个controllerUrl ?nbsp;controllerClass 
controllerClass 面(page)被插入前Q直接调用的一U控ӞcontrolQ类
                的类型。这个类是用来ؓinserted tile 准备数据的?BR>                只能?nbsp;一个controllerUrl ?nbsp;controllerClass 。这个类
                实现或扩展下列类之一:
                        org.apache.struts.tiles.Controller, 
                        org.apache.struts.tiles.ControllerSupport,
                        或org.apache.struts.action.Action.
definition         Insert定义的名U。定义在一个集中的文g中被定义。现
                在,仅仅一个工厂(factoryQ的定义可以用这个属性插入?BR>                插入一个用definition定义的定义,用beanName="".
flush         true 或?nbsp;false. 如果true, 当前会在tile insertion.?BR>                输出?BR>ignore         如果q个属性设|ؓ true q且name所指定的属性不存在?BR>                话,仅仅会返回一个什么都没有写得l果。初始D|ؓ
                false,可以抛出一?nbsp;runtime exception 
name        一个要被插入得实体QentityQ的名字。查找按照下面的?BR>               ?nbsp;definition, attribute, 然后 page.
page        一个表Ctile 或?nbsp;template 的URI字符丌Ӏtemplate,
                       page, ?nbsp;component 属性要严格的有同样的行?BR>role        如果用户是指定的角色Q那么这个标记才会v作用Q否则,
               q个标记会被忽略掉,q且不会写出M内容?BR>template       一个表Ctile 或?nbsp;template 的URI字符丌Ӏtemplate,
                      page, ?nbsp;component 属性要严格的有同样的行?BR>
definition 标签
    definition 标签用bean的定义方法创Z个tile (template)Q这个新创徏的bean在requested scope用一个id来标识。definition 标签的有些语法和insert 一栗新的定义可以扩展在definition factory (XML file)中已l描q过的定义,q且可以重蝲以前定义的参数?BR>
Table 14-3 列出了definition 标签支持的属?/DIV>
属性名     描述
extends 可以用来扩展的父定义Q这个父定义在definitions factory?BR>           定义了?BR>id 定义bean的名Uͼq个属性是必需?BR>page 要插入template/component 的URL 。和template.一栗?BR>role 在插入一个定义前Q进行检查role.如果当前用户q没有定义这?BR>           role,那么q个定义不会被插入。再插入的时候进行检查,
           而不是在定义的时候?BR>scope 在新定义bean 的时候被创徏。如果没有指定,
           默认值是page scope.
template tile/component/template (a JSP page)的URL  .
下面的片断展CZ如何在JSP中用definition标签?BR>

<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>


一个完整的例子在q章后面?Declaring Definitions in a JSP Page" 中展C?BR>
put 标签
    put 标签用来传递属性到一个tile lg?nbsp;q个标签只能在insert ?nbsp;definition 标签内部使用?nbsp;put标签的Dvalue 属性或者标{体指定。也l常被指定值得cd?nbsp;
string: 文如其名
page 或template: 内容包含指定的URL. 名字通常以URL?
definition: 内容从指?from factory)的定义获? 名字以已定义的名字用。如果type 已经使用, 他就会被get ?nbsp;insert 标签插入到tile. 如果type 属性没有被指定Q则内容是不定的untyped,除非它来自一个typed bean.
提示: Setting direct="true" 与setting type="string" 是相同的.
Table 14-4 列出了put 标签的属性?/DIV>
属性名         描述
beanName        Bean 的名Uͼ和|valueQ的使用Ҏ一?Bean是从
                 Ҏ的内容中获得。如果有的话Q还可以?BR>                 pageContext.findAttribute( ) Ҏ获得?nbsp;如果
                 beanProperty 属性已l指定,可以从相应Bean属性中?BR>                 得这个?nbsp;?BR>beanProperty    Bean 属性(propertyQ的名字Q如果指定,那么q个g
                 Bean的属性(propertyQ中获得.
beanScope        Bean的作用范_如果没有指定Q?BR>                 pageContext.findAttribute( ) Ҏ可以使用。Bean?BR>                 范围可以是Q何的JSP, lgQcomponentQ,或者模?BR>                QtemplateQ。在后两者情况(lgQ模板)Qbean 可以
                ?nbsp;Tiles (tile)/lg(component)/模板QtemplateQ?nbsp;?BR>                容中
content         Content 在tile 范围内?nbsp;属性相当于value 属性,增加?BR>                Z于JSP template tags 兼容?
Direct         Content的控制方? true意味着Content直接昄; false
                        意味着content 被包含?nbsp;false 是默认倹{也是指?BR>                content cd的一U方法。如?nbsp;direct="true", content
                        ?nbsp;"string"; 如果 direct="false", content ?nbsp;"page".
                        增加q个属性是Z于JSP template tags 兼容?
Name         属性的名称(name).
Role         如果用户是指定的角色Q那么这个标记才会v作用Q否则,
                q个标记会被忽略掉,q且不会写出M内容?BR>Type         content 的类?type)。有效?BR>                ?string", "page", "template", ?nbsp;"definition". 
value         属性的|可以是String 或?nbsp;Object. 值是直接被分?BR>                的?nbsp;(value="avalue") 或者从一个bean 获得。一?nbsp;
                value, content, ?nbsp;beanName 一定存在?BR>putList 标签
     putList 标签建立一个listQ在 tile 中以g递?nbsp;list 元素用add 标签增加。这个标{֏能在insert 或definition 标签中用?BR>
Table 14-5 列出putList 标签的属性?/DIV>
属性名 描述
Name List 的名U。这个属性是被要求的?BR>
add 标签
     add 标签是增加一个element 到周围的list 中。这个标{֏能在putList 标签中用。这个值可以直接被分配?nbsp;(value="avalue") 或者从一个bean中获得?nbsp;一个value 或beanName 必须被指定?BR>
Table 14-6 列出 add 标签的属性?/DIV>
属性名            描述
beanName              Bean 的名Uͼ和|valueQ的使用Ҏ一?Bean
                               是从Ҏ的内容中获得。如果有的话Q还可以?BR>                     pageContext.findAttribute( ) Ҏ获得?nbsp;如果 
                     beanProperty 属性已l指定,可以从相应Bean属?BR>                     中获得这个?nbsp;?BR>beanProperty Bean 属性(propertyQ的名字Q如果指定,那么q?BR>                     个gBean的属性(propertyQ中获得.
beanScope Bean的作用范_如果没有指定Q?nbsp;
                     pageContext.findAttribute( ) Ҏ可以使用?BR>                     Bean的范围可以是M的JSP, lg
                     QcomponentQ,或者模板(templateQ。在后两?BR>                     情况Q组Ӟ模板Q,bean 可以?nbsp;Tiles (tile)/lg
                     (component)/模板QtemplateQ?nbsp;内容中content
                               和value 属性相同。增加这个属性是Z于JSP 
                               template tags 兼容?BR>direct                Content的控制方? true意味着Content直接昄;
                              false 意味着content 被包含?nbsp;false 是默认?BR>role               如果用户是指定的角色Q那么这个标记才会v作用Q否
                    则,q个标记会被忽略掉,q且不会写出M内容。如?BR>                    add 标签在定义中被定义,则role不会起什么作用?
type               content 的类?type)。有效?BR>                    ?string", "page", "template", ?nbsp;"definition".
                              如果type 属性没有指定,?nbsp;content 是没有类型的
                    QuntypedQ除非它从一个bean cd中获得?
value               增加的倹{可以是String 或?nbsp;Object.

get 标签
      get 标签是从 tile 文中获得内容。ƈ且把它插入到面中?BR>
Table 14-7 列出get 标签的属性?/DIV>
属性名 描述
flush true 或?nbsp;false. 如果true, 当前会在tile insertion.前输出流.
ignore 如果q个属性D讄?nbsp;true q且属性被指定的名字不存在Q?BR>           只会单的q回一个什么都没有的结果。默认值是false, 它可以引
           起一个runtime exception 的抛出?BR>name ?nbsp;tile 范围内得到的内容的名U。这个属性是要求的?BR>role 如果用户是指定的角色Q那么这个标记才会v作用Q否则,q个?BR>           C被忽略掉Qƈ且不会写ZQ何内宏V?BR>
getAsString 标签
     getAsString标记负责查找tile属性指定的属性|q作为字W串传给当前的JspWriter对象Q一般用toString()Ҏq行转换。如果不存在Q将会抛Z个JSPException异常。表14-8列出了这个标记的属性:
Table 14-8: getAsString标记属?/DIV>
属性名 描述
ignore 如果q个属性D讄?nbsp;true q且属性被指定的名字不存在Q只
           会简单的q回一个什么都没有的结果。默认值是false, 它可以引?BR>           一个runtime exception 的抛出?BR>name 属性的名称(name). q个属性是要求?BR>role 如果用户是指定的角色Q那么这个标记才会v作用Q否则,q个?BR>          C被忽略掉Qƈ且不会写ZQ何内宏V?BR>
useAttribute标记
    useAttribute 标记在指定的范围内用tile的属性值声明了一个Java 变量和一个属性。这个变量和属性由id指定一个名字,如果没有指定Q则是original name ?BR> 
Table 14-9 列出了useAttribute tag的属性?/DIV>
属性名      描述
classname       声明变量的类?BR>id         属性和变量所声明的名U?BR>ignore         如果q个属性D讄?nbsp;true q且属性被指定的名字不?BR>                在,只会单的q回一个什么都没有的结果。默认值是
                false, 它可以引起一个runtime exception 的抛出?BR>name         属性的名称(name). q个属性是要求?BR>scope         声明属性的Scope.默认?page".
importAttribute标记

    importAttribute 标记从tile 中插入一个属性到被请求的作用域。name ?nbsp;scope 属性是可选的。如果没有指定,所有的属性将引入到page作用?nbsp;? 一旦引?q个属性可以像其他在JSP中的BEAN一样用?BR>Table 14-10 列出?nbsp;importAttribute 标签的属?BR>
Table 14-10: importAttribute标记属?nbsp;

属性名 描述
ignore 如果q个属性D讄?nbsp;true q且属性被指定的名字不存在Q只
           会简单的q回一个什么都没有的结果。默认值是false, 它可以引?BR>           一个runtime exception 的抛出?BR>name Tile的属性名。如果没有指定,则所有的属性将被引入?BR>scope 被引入属性的scope属性,默认?page".
initComponentDefinitions标记
      initComponentDefinitions标记初始化定义工厂?BR>
Table 14-11: initComponentDefinitions标记的属?/DIV>


属性名    描述
classname    如果指定Qgؓ创徏和初始化工厂属性的cd?BR>file      定义文g名,此属性是必需?/P>

 



chenruhan 2006-03-15 17:03 发表评论
]]> վ֩ģ壺 | ຣʡ| Դ| | ؼ| غ| ̩| | | Ͱ| Դ| ͨ| ƽ| | ԭ| ɽ| ǰ| ͼ| | | | Ǩ| ī񹤿| | | | | | | | | | | ˶| ƽ| ǭ| | ʷ| | ̨| Ͻ|