这是Jakarta Struts编程一书中使用 Tiles框架系列的第三部分,主要阐述了如何使用标记库(包括:insert, definition, put, putList, add, get, getAsString, useAttribute, importAttribute, and initComponentDefinitions).
Tiles标记库(The Tiles Tag Library)
这一部分介绍Tiles 框架使用的jsp自定义标记。表14-1列出了框架可用的标记 。这些标记与其他一些基于模板的框架所提供的标记是非常相似的,但是Tiles框架中蕴含着更丰富的功能。
表 14-1: Tiles框架标记库中的标记
标记名(Tag name) 描述(Description)
Add 增加一个元素到环境列表中。
definition 创建一个Tiles组件定义。
Get 从请求作用域中得到内容(content),这个内容是put 标
记所置入的。
GetAsString 传递tile/component/template属性指定的值到当前的
JspWriter中。
importAttribute 引入一个Tiles属性到指定的上下文(context)中;
initComponentDefinitions 初始化一个Tiles定义工厂。
Insert 插入一个Tiles组件。
Put 设置一个属性到一个Tiles上下文中。
PutList 声明一个列表,这个列表作为一个属性被传递。
useAttribute 在页面中使用一个属性值。
insert 标记
insert 标记是负责页面中插入内容。在一个Tiles布局中, insert标记使用属性值指定的内容。在非Tile布局中,insert标记是用来获得一个框架(layout)并且使用put 标记把内容传递给布局中。
表14-2列出insert 标记的属性:
表 14-2:insert 标记的属性
属性名(Attribute name) 描述(Description)
attribute 当前Tiles /组件上下文的属性名称,这个属性值是由name 属性来传递的。
beanName Bean 的名称作为值来使用.Bean是从指定的内容中获得。
假如有的话,Bean可以从指定的上下文中获得。否则就得使用pageContext.findAttribute( ) 方法获得。 假如beanPRoperty 属性已经指定,也可以从相应Bean属性中获得这个值 。
假如,这个Bean(或Bean的属性值)是某个属性类(Direct, Instance,等等)的实例, 那么插入过程要依照类的类型而定。另外,调用Bean 的toString( ) 方法,并返回值为String,并传给name属性。
beanProperty Bean 属性(property)的名字,假如指定,那么这个值从
Bean的属性(property)中获得.
beanScope Bean的作用范围,假如没有指定, pageContext.findAttribute( ) 方法可以使用。Bean的范围可以是任何的JSP, 组件(component),或者模板(template)。在后两者情况(组件,模板),bean 可以在 Tiles (tile)/组件(component)/模板(template)内容中
component 一个描述tile 或者 模板(template)URI的字符串. 模板(template),页(page)和 组件(component)属性必须有严格相同的行为
controllerUrl 在页被插入前,控制器(controller)的直接URI 。 这个URI通常用来指示一个strUCt action. 这个控制器(action) 是用来为inserted tile 预备数据的。只能有 一个controllerUrl 或 controllerClass
controllerClass 页面(page)被插入前,直接调用的一种控制(control)类的类型。这个类是用来为inserted tile 预备数据的。只能有 一个controllerUrl 或 controllerClass 。这个类实现或扩展下列类之一:org.apache.struts.tiles.Controller, org.apache.struts.tiles.ControllerSupport,或org.apache.struts.action.Action.
definition Insert定义的名称。定义在一个集中的文件中被定义。现在,仅仅一个工厂(factory)的定义可以用这个属性插入。插入一个用definition定义的定义,用beanName="".
flush true 或者 false. 假如true, 当前页会在tile insertion.前输出流
ignore 假如这个属性设置为 true 并且name所指定的属性不存在的话,仅仅会返回一个什么都没有写得结果。初始值设置为false,可以抛出一个 runtime exception
name 一个要被插入得实体(entity)的名字。查找按照下面的顺序 definition, attribute, 然后 page.
page 一个表示tile 或者 template 的URI字符串。template,page, 和 component 属性要严格的有同样的行为
role 假如用户是指定的角色,那么这个标记才会起作用,否则,这个标记会被忽略掉,并且不会写出任何内容。
template 一个表示tile 或者 template 的URI字符串。template,page, 和 component 属性要严格的有同样的行为
definition 标签
definition 标签用bean的定义方法创建一个tile (template),这个新创建的bean在requested scope用一个id来标识。definition 标签的有些语法和insert 一样。新的定义可以扩展在definition factory (xml file)中已经描述过的定义,并且可以重载以前定义的参数。
Table 14-3 列出了definition 标签支持的属性
属性名 描述
extends 可以用来扩展的父定义,这个父定义在definitions factory被定义了。
id 定义bean的名称,这个属性是必需的
page 要插入template/component 的URL 。和template.一样。
role 在插入一个定义前,进行检查role.假如当前用户并没有定义这个role,那么这个定义将不会被插入。再插入的时候进行检查,而不是在定义的时候。
scope 在新定义bean 的时候被创建。假如没有指定,默认值是page scope.
template tile/component/template (a JSP page)的URL .
下面的片断展示了如何在JSP中使用definition标签。
page="/layouts/storefrontDefaultLayout.jsp"
scope="request">
一个完整的例子将在这章后面的"Declaring Definitions in a JSP Page" 中展示
put 标签
put 标签用来传递属性到一个tile 组件。 这个标签只能在insert 或 definition 标签内部使用。 put标签的值被value 属性或者标签体指定。也经常被指定值得类型。
string: 文如其名
page 或template: 内容包含指定的URL. 名字通常以URL用.
definition: 内容从指定(from factory)的定义获得. 名字以已定义的名字使用。假如type 已经使用, 他就会被get 或 insert 标签插入到tile. 假如type 属性没有被指定,则内容是不确定的untyped,除非它来自一个typed bean.
提示: Setting direct="true" 与setting type="string" 是相同的.
Table 14-4 列出了put 标签的属性。
属性名 描述
beanName Bean 的名称,和值(value)的使用方法一样.Bean是从非凡的内容中获得。假如有的话,还可以用pageContext.findAttribute( ) 方法获得。 假如beanProperty 属性已经指定,可以从相应Bean属性中获得这个值 。
beanProperty Bean 属性(property)的名字,假如指定,那么这个值从Bean的属性(property)中获得.
beanScope Bean的作用范围,假如没有指定,pageContext.findAttribute( ) 方法可以使用。Bean的范围可以是任何的JSP, 组件(component),或者模板(template)。在后两者情况(组件,模板),bean 可以在 Tiles (tile)/组件(component)/模板(template) 内容中
content Content 在tile 范围内。 属性相当于value 属性,增加是为了于JSP template tags 兼容。.
Direct Content的控制方法: true意味着Content直接显示; false意味着content 被包含。 false 是默认值。也是指定content 类型的一种方法。假如 direct="true", content是 "string"; 假如 direct="false", content 是 "page".增加这个属性是为了于JSP template tags 兼容。.
Name 属性的名称(name).
Role 假如用户是指定的角色,那么这个标记才会起作用,否则,这个标记会被忽略掉,并且不会写出任何内容。
Type content 的类型(type)。有效值是"string", "page", "template", 或 "definition".
value 属性的值,可以是String 或者 Object. 值是直接被分配的。 (value="avalue") 或者从一个bean 获得。一个value, content, 或 beanName 一定存在。
putList 标签
putList 标签建立一个list,在 tile 中以值传递。 list 元素用add 标签增加。这个标签只能在insert 或definition 标签中使用。
Table 14-5 列出putList 标签的属性。
属性名 描述
Name List 的名称。这个属性是被要求的。
add 标签
add 标签是增加一个element 到四周的list 中。这个标签只能在putList 标签中使用。这个值可以直接被分配。 (value="avalue") 或者从一个bean中获得。 一个value 或beanName 必须被指定。
Table 14-6 列出 add 标签的属性。
属性名 描述
beanName Bean 的名称,和值(value)的使用方法一样.Bean是从非凡的内容中获得。假如有的话,还可以用pageContext.find
以上就是在Struts中使用Tiles框架的内容,更多相关文章请关注PHP中文网(www.php.cn)!

Struts框架的原理解析与实践探索Struts框架作为JavaWeb开发中常用的MVC框架,具有良好的设计模式和可扩展性,广泛应用于企业级应用程序开发中。本文将对Struts框架的原理进行解析,并结合实际代码示例进行探索,帮助读者更好地理解和应用该框架。一、Struts框架的原理解析1.MVC架构Struts框架基于MVC(Model-View-Con

探秘Struts2框架的内部机制Struts2是一个流行的JavaWeb应用程序框架,被广泛应用于开发基于MVC架构的Web应用程序。它基于Struts1的基础上进行了大量的改进和优化,提供了更强大、更灵活的功能。在深入探索Struts2框架的内部机制之前,我们需要了解一些基本概念。Struts2框架的核心是MVC(Model-View-Controlle

随着互联网和智能移动设备的普及,Web应用程序的开发日趋重要。而Java作为一种优秀的跨平台编程语言,受到了开发者们的青睐。在Java后端开发中,使用MVC框架可以帮助我们提高开发效率、降低开发成本。本文将介绍使用JavaApacheStruts进行API的MVC框架开发。一、MVC框架MVC(Model-View-Contro

struts框架的原理:通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的MVC设计模式的应用框架,它通过采用一个或多个Action类来处理用户请求,并将结果返回给用户。struts框架的应用:1、构建Web应用程序;2、处理表单数据;3、集成第三方库;4、实现国际化;5、构建RESTful API。

Java语言中的Struts框架介绍随着Web应用程序的逐渐普及,比如Web网站和企业应用系统,JavaEE(EnterpriseEdition)架构也逐渐成为了一个主流的选择。在JavaEE架构中,由于MVC(Model-View-Controller)设计模式的流行,Struts框架成为了大家经常使用的Web应用程序框架之一。在本文中,我们将深入探

Struts2框架实现原理的详细解析Struts2框架作为一个广泛应用的JavaWeb应用框架,其优秀的设计和性能使得它成为开发者们喜爱使用的工具。了解Struts2框架的实现原理,对于提升开发者对框架的理解和应用水平具有重要意义。本文将通过详细解析Struts2框架的实现原理,并提供具体的代码示例,帮助读者更加深入地了解这一框架。一、Struts2框架简

深入解析Struts2框架的工作原理Struts2是一个优秀的JavaWeb应用开发框架,其提供了基于MVC(Model-View-Controller)模式的开发方式,帮助开发人员更快速地构建和维护Web应用程序。理解Struts2框架的工作原理对于开发人员来说是非常重要的,本文将通过详细的解析和具体的代码示例,帮助读者深入了解Struts2框架的工作原

深入解析Struts框架的原理与应用摘要:Struts框架是一个优秀的JavaWeb应用程序开发框架,其基于MVC设计模式,以及一系列的标签库和拦截器,为开发者提供了一种简单、规范的方式来构建Web应用程序。本文将深入解析Struts框架的原理与应用,包括框架的工作原理、主要组件以及通过示例代码来展示其具体的应用。一、Struts框架的工作原理Struts


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),