struts1(四)

2014-11-24 11:24:47 · 作者: · 浏览: 23
强大的布局管理器,它们指定各个视图组件在窗口中的分布位置。布局管理器有助于创建复合式的复杂界面,一个复合式界面由一些简单的基本界面组成。
利用布局管理器来创建GUI界面有以下优点:
可重用性:基本界面可以被重用,组合成各种不同的复合式界面
可扩展性:可以方便的扩展基本界面,从而创建更复杂的界面(其实此处我的感觉并非如此,可扩展性并不是为了创建复杂界面的,越是复杂的界面在比较独立的情况下更容易创建。)
可维护性:每个基本界面之间相互独立,当复合式界面中的局部区域发生变化,不会影响其它区域
不幸的是,JSP技术本身并没有直接提供布局或布局管理器。为了简化Web页面的开发,提高可重用性和可扩展性,Struts Tiles框架提供了一种模板机制,模板定义了网页的布局,同一模板可以被多个Web页面共用。此外,Tiles框架还允许定义可重用的Tiles组件,它可以描述一个完整的网页,也可以描述网页的局部内容。简单的Tiles组件可以被组合或扩展成为更复杂的Tiles组件。
Tiles框架的基本用法:
使用Tiles框架大大提高了视图层程序代码的可重用性、可扩展性和可维护性,也增加了开发视图的难度和复杂度,在使用Tiles框架之前一定要结合Web应用的规模。
在开发Web站点时,常常要求同一站点的所有Web页面保持一致的外观,比如有相同的布局、页头、页尾和菜单。 网页被划分为四个部分:Header、Menu、Footer和Content。对于同一站点的所有Web页面,Header、Menu和Footer部分的内容相同,仅仅Content部分的内容不相同。如果采用基本的JSP语句来编写所有的Web页面,显然会导致大量的重复编码,增加开发和维护成本。
Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它允许先创建模板,然后在运行时动态地将内容插入到模板中。Tiles框架建立在JSP的include指令的基础上,但它提供了比JSP的include指令更强大的功能。
Tiles框架具有如下特性:
创建可重用的模板
动态构建和装载页面
定义可重用的Tiles组
支持国际化
Tiles框架包含以下内容:
Tiles标签库
Tiles组件的配置文件
TilesPlugIn插件
什么是tiles框架?
Tiles框架是struts的一个页面布局插件。提高了代码可重用性、可扩展性和可维护性,同时也增加了开发难度
tiles的特点?
1,可定义重用tiles组件
2,动态装载页面
3,支持国际化
4,能创建可重用模块
Tiles框架是Struts的一个插件。我们可以使用Tiles框架来进行页面布局设计。Tiles框架提供了一种模板机制,它可以将网页内容和布局分离,并允许先创建模板,然后在页面中再插入具体的内容。
一、安装Tiles框架
为了使用Tiles,我们必须首先在struts-config.xml文件中声明Tiles,配置代码如下:
其中org.apache.struts.tiles.TilesPlugin类只需要设置一个definitions-config属性。这个属性值指向了一个定义文件tiles-defs.xml。这个定义文件的基本格式如下:
< xml version="1.0" encoding="UTF-8" >
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
jsp">
//继承
其中元素中可以包含多个子元素。我们还可以将一个定义文件拆成多个定义文件,如A-defs.xml、B-defs.xml和C-defs.xml。在为definitions-config属性赋值时,如果有多个定义文件,中间用逗号(,)分割。如下面的代码所示:
Tiles框架还有一个定制标签库。我们可以使用如下的taglib指令来声明这个标签库:
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
二、标签
由于在编写Web程序的过程中,很多页面会出现同样的内容,如所有的页面都使用同样的的页头和页尾。在JSP标签库中提供了一个include标签可以将其他的页面包含到当前的页面中,如我们可以使用如下的代码包含页头和页尾。
在Tiles框架的标签库中也提供了一个insert标签。这个标签也可以完成和include同样的工作。如上述代码也可以写成如下形式:
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
虽然include和insert标签都可以很好地解决代码重用问题,但是并不能完全避免代码重复的问题。如很多使用include或insert标签的页面也拥有很多类似或相同的代码。如使用css布局、用table、div等HTML元素进行位置控制等。如果想避免这些代码的重复。光使用include或insert标签是无法做到的。而要想做到这一点,就要使用下一篇文章中介绍的Tiles模板。