Tiles 框架为创建 Web 页面提供了一种模板机制,它能将网页的布局和内容分离。允许先创建模板,然后在运行时动态地将内容插入到模板中。

  在我们已知的创建符合式网页的方法中,包括:

  采用基本的JSP语句创建符合式网页。这种方法会导致JSP代码的大量冗余,后果是重复编码、多处修改,大大增加开发和维护成本。

  采用JSP的include指令创建符合式网页。和第一种方案相比,尽管采用JSP的include指令创建的复合式网页减少了重复代码,但不能完全避免代码冗余。同时JSP文件的数量增加了,使软件的复杂度也增加了。

  采用<tiles:insert>标签创建符合式网页。这种方法和JSP的include指令拥有相同的功能,同时也有着相同的利弊。

  采用Tiles模板创建符合式网页。Tiles模板是一种描述页面布局的JSP页面,Tiles模板只定义了Web页面的样式,而不指定内容。在Web页面运行时,才把特定的内容插入到模板中。使用Tiles模板的步骤是:

  (1) 安装Tiles标签库所需要的文件;

  (2) 定义模板文件,模板文件是指定义了网页布局,但不包含具体网页内容的JSP页面;

  (3) 在页面中运用定义好的Tiles模板,运用Tiles模板是通过<tiles:insert>标签和<tiles:put>子标签来定义的。

  Struts还在Tiles框架中引入了Tiles组件的概念。Tiles组件可以代表一个完整的网页,也可以代表网页的一部分。简单的Tiles组件可以组成复杂的Tiles组件,或被扩展为复杂的Tiles组件。Tiles组件的使用步骤:

  (1) 安装Tiles标签库所需要的文件;

  (2)  定义模板文件,模板文件是指定义了网页布局,但不包含具体网页内容的JSP页面。在模板JSP页面中通过<tiles:insert attribute="pageName"> 标签来预留页面将要加载的位置。

  (3) 在专门的XML文件中配置Tiles组件。如下配置一个default-definition组件(其中pageName与<tiles:insert>标签中的pageName对应):

  <tiles:definitions>

    <definition name="default-definiton" path="...../layout.jsp">

      <put name="pageName" value="...../jspName.jsp">

      ......

    </definiton>

  </tiles-definitions>

  (4) 在Struts配置文件中配置TilesPlugin插件,代码如下:

  <plug-in className="org.apache.struts.tiles.TilesPlugin">

   <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>

     <set-property property="definitions-parser-validate" value="true"/>

   </plug-in>

  TilesPlugin插件用于加载Tiles组件的配置文件,在<plug-in>元素中包含几个<set-property>子元素,用于向

TilesPlugin插件传入附加的参数:

  definitions-config参数:指定Tiles组件的配置文件。如果有多个配置文件,则它们之间用逗号分隔。

  definitions-parser-validate参数:指定XML解析器是否验证Tiles配置文件,可选值包括true和false,默认值为

true。

  (5) 为保证TilesPlugin插件在Web应用启动时加载,在web.xml文件中配置ActionSerlvet(在MyEclipse中添加Struts支持,会默认配置好ActionServlet)。ActionServlet控制器在初始化时会加载所有插件。

  (6) 最后在需要应用Tiles组件的JSP页面中通过<tiles:insert definiton="default-definiton">标签,插入Tiles组件。(其中default-definiton对应于(3)中的default-definiton)

  如果Tiles组件是一个完整的网页,还可以直接通过Struts Action来访问Tiles组件。只要如下配置好一个action就可以在页面中访问:

  <action   path="/default"

      type="org.apache.struts.actions.ForwardAction"

      parameter="definitions-config">

  </action>

  此外,Tiles组件还有两个非常有用的特性:

  Tiles组件的可组合性。Tiles组件作为一种可重用的组件,可以像搭积木一样,把简单的Tiles组件组装成复杂的Tiles组件:

  <tiles-definitions>

    <definiton name="side-definiton" path="......./sidelayout.jsp">

      <put name="top" value="top.jsp">

      <put name="bottom" value="bottom.jsp">

    </definiton>

    <definiton name="content-definiton" path="....../contentlayout.jsp>

      <put name="side" value="side-definiton" type="definiton">

      <put name="content" value="content.jsp">

    </definiton>

  </tiles-definitons>

  Tiles组件的可扩展性。Tiles组件可以像Java类一样,被子Tiles组件继承,子Tiles拥有父Tiles组件的所有特性,从而进一步消除代码冗余。

  <tiles-definitions>

    <definiton name="base-definiton" path="......./baselayout.jsp">

      <put name="header" value="header.jsp">

      <put name"content" value="">

      <put name="footer" value="footer.jsp">

    </definiton>

    <definiton name="content-definiton" extends="base-definiton">

      <put name="content" value="content.jsp">

    </definiton>

  </tiles-definitons>

Struts Tiles 框架概述相关推荐

  1. 基于Tiles框架Struts框架的UI 设计—几种组织HTML和JSP视图组件

    摘要每个web应用开发者一定组织视图组件,例如  页首,正文体和页尾. 有许多技术可以组织这些组件, 但每个都有优缺点.这篇文章包括了7个可用的解决方案并让你了解 Tiles框架和Struts框架的灵 ...

  2. Struts2框架概述、Struts简介、Struts环境搭建、Struts执行流程、Struts文档、Struts配置文件的加载顺序-day01

    目录 第一节 框架概述 1.1 什么是框架 1.2 三大框架 1.3 三层架构 1.4 MVC.Servlet.Filter MVC Servlet Filter 第二节 Struts简介 2.1 S ...

  3. 掌握Tiles框架 (二)-- Tiles布局和定义

    1. Tile 布局 构建第一个 tile 布局 如果站点能够重用相同的布局(使用 HTML 表格来实现)和图像,而不必重复相同的 HTML 代码,这样不是很好吗? Tile 在为站点创建共同的外观方 ...

  4. Tapestry框架概述

    Tapestry带来了真正的Java web应用程序OOP编程,摘自<深入浅出Tapestry>中的一句话.这本书也是我学习Tapestry的参考之一,其他参考资料如<Tapestr ...

  5. struts -Tiles介绍

    來源:http://hithoper.blog.hexun.com/17860631_d.html 安装和配置Tiles 在您能够使用Tiles 框架之前,您必须确保它已安装并正确的配置在web容器中 ...

  6. 9.struts1.x中tiles框架的使用

    在页面直接使用titles标签 先引入标签:<%@taglib uri="http://struts.apache.org/tags-tiles" prefix=" ...

  7. Struts+DAO框架搭建完成!(源码)

    今天做了这个Struts+DAO框架,可以说是又向SSH迈了一步.   做的过程中又发现了一些问题,但是在我和其他人的努力下一起解决了.这个问题是MyEclipse的Tomcat的启动问题.(已经解决 ...

  8. Struts MVC 框架 (让你一步步成为高手)

    web应用的分层 交互层,表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应.(V,C) 处理层,完成数据的处理,也就是业务层(M). MVC设计模式(应用观察者模式的框架模式) M ...

  9. Spring框架概述

    Spring框架概述 Spring是一个Service层的框架,可以整合许多其它框架进行工作. Spring的主要技术是 IOC(DI) AOP IOC(DI) - 控制反转(依赖注入) AOP - ...

最新文章

  1. php sqlsrv_query,sqlsrv_query
  2. OSX操作技巧:快速锁定系统(类似Windows+L)
  3. 1.21 Pattern类和Matcher类的使用
  4. Python自动化运维——系统性能信息模块
  5. g++ linux 编译开栈_Linux下编写C++服务器(配置C++编译调试环境)
  6. 主成分分析原理解释(能力工场小马哥)
  7. [mmdetection] - win10配置mmdetection(1.1和2.0) + 训练网络(faster-rcnn、mask-rcnn)
  8. 前端学习(590):调试javascript的流程
  9. instanceof 的运用
  10. Replace Method with Method Object(以函数对象取代函数)
  11. mysql always as_MySQL always returning BIT values as blank
  12. Eclipse怎样连接并打开oracle等数据库?
  13. 阿里矢量图标库 - Unicode 方式使用说明(两种用法)
  14. 数据结构课程设计(基于AVL树的身份证管理系统)
  15. 使用labelme标记图片、json批量转dataset的解决方案以及一些问题解决方案
  16. 局域网自建对讲服务器,Windows 局域网语音对讲
  17. Java 小练习(图形面积计算器)
  18. F5 ELK可视化方案如何做到DNS运维更安全更高效
  19. 2019电赛----模拟电磁曲射炮
  20. 实体店商家微信会员系统开发步骤_分享微信会员系统优势

热门文章

  1. C语言:到底是不是太胖了
  2. mac系统共享服务器,mac共享服务器
  3. 【cs224n学习作业】Assignment 1 - Exploring Word Vectors【附代码】
  4. 斯坦福cs224n-2021 assignment1-探索词向量—词共现矩阵—SVD(奇异值分解)
  5. SQL注入学习之特殊符号(三)
  6. linux命令iconv_linux下命令——iconv用法
  7. 如何构建用户画像,给用户打“标签”?
  8. 如何更新npm和nodejs到最新版本?
  9. 计算机音乐告白之夜,温柔版:《告白之夜(纯音乐)》
  10. Web安全之SQL注入总结