搜索
首页Javajava教程在Struts中使用Tiles框架
在Struts中使用Tiles框架Dec 17, 2016 am 10:50 AM


  这是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标签。
  
    id="storefront.default"
  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)! 


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
深度探讨Struts框架的原理与实践深度探讨Struts框架的原理与实践Feb 18, 2024 pm 06:10 PM

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

解析Struts2框架的工作原理解析Struts2框架的工作原理Jan 05, 2024 am 08:29 AM

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

Java后端开发:使用Java Apache Struts进行API MVC框架开发Java后端开发:使用Java Apache Struts进行API MVC框架开发Jun 17, 2023 am 10:03 AM

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

struts框架的原理和应用有哪些struts框架的原理和应用有哪些Jan 03, 2024 pm 05:31 PM

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

Java语言中的Struts框架介绍Java语言中的Struts框架介绍Jun 10, 2023 pm 08:00 PM

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

Struts2框架实现原理的详细解析Struts2框架实现原理的详细解析Feb 21, 2024 pm 05:54 PM

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

深入剖析Struts2框架的运行机制深入剖析Struts2框架的运行机制Jan 05, 2024 pm 03:36 PM

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

探究struts框架的原理及应用探究struts框架的原理及应用Jan 04, 2024 am 08:19 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

螳螂BT

螳螂BT

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

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

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