0

0

在Struts中使用Tiles框架

黄舟

黄舟

发布时间:2016-12-17 10:50:19

|

1517人浏览过

|

来源于php中文网

原创


  这是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)! 

php商城系统
php商城系统

PHP商城系统是国内功能优秀的网上商城系统,同时也是一个商业的PHP开发框架,有多套免费模版,强大的后台管理功能,专业的网上商城系统解决方案,快速建设网上购物商城、数码商城、手机商城、办公用品商城等网站。 php商城系统v3.0 rc6升级 1、主要修复用户使用中出现的js未加载完报错问题,后台整改、以及后台栏目的全新部署、更利于用户体验。 2、扩展出,更多系统内部的功能,以便用户能够迅速找到需

下载

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP开发大型商城项目实战视频
ThinkPHP开发大型商城项目实战视频

共54课时 | 21.1万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

React 教程
React 教程

共58课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号