Tiles纵览
Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。
它允许先创建模板,然后在运行时动态地将内容插入到模板中。Tiles框架建立在JSP的 include指令的基础上,但它提供了比JSP的include指令更强大的功能。Tiles框架具有如下特性:
·创建可重用的模板
·动态构建和装载页面
·定义可重用的Tiles组件
·支持国际化
Tiles框架包含以下内容:
·Tiles标签库
·Tiles组件的配置文件
·TilesPlugIn插件
Tiles 框架提供一种模板机制,它能将布局和内容的职责分离。本章前面描述的模板,允许您先创建模板,然后在运行时动态地将内容插入到布局中。如果您要根据国际化、用户喜好定制您的站点,或仅仅改变视感(这在每个网站迟早会发生的),您就会发觉模板是一个强有力的机制。Tiles框架具有如下特性:
u 模板能力
u 动态构建和装载页面
u 视屏定义
u 支持tile和布局重用
u 支持国际化
u 支持多通道
模板标签库已经存在于struts框架中相当长的时间了,这些标签可让您使用非常基本的模板方式在web应用程序中组织JSP页面。虽然这些标签对分离web应用程序的布局和内容很有帮助,但tiles框架走的更远,它实际上是模板标签库的超集,具备许多其它特性。
提示:tiles框架先前被称做Components,后来因为Component这个术语被滥用而改名。在tiles文档和源程序中某些地方仍然在沿用老的名称。
Cedric Dumoulin创立了tiles框架,它扩展了模板的概念,提供给开发人员在用JSP技术创建web应用程序时更大的灵活性和自由度。Web应用程序的内容仍然用JSP页面和JavaBeans驱动,但是布局由一个独立的JSP页面或XML文件(后面将提到)指定。
什么是tile?
Tile是web页面的一个区域,一个页面可以只有一个区域组成,或分解为几个区域。图14-1列举了Storefront应用程序的一个例子。
图14-1 Storefront应用程序的区域
border=0
一个JSP页面通常由几个区域或tile组成,关于页面没有什么特别的,仅仅是用在tiles框架中,并使用tiles标签库。
Tile 最重要的方面在于它是可复用的,对于布局和内容来说都是正确的。不同于大多数JSP页面,tiles组件在应用程序中重复利用,甚至可能跨应用程序复用。而且,tile不复杂。实际上,我们已经看到的大多数例子,包括例14-2到例14-4,都能归类为tiles。
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
=============******************************** 在struts中 tiles 开发步骤如下 ****************************======================
=====================================================================================================================
使用Tiles
1 创建Tiles定义。tiles-defs.xml文件
2 启动Tiles插件。
3 创建布局JSP并使用Tiles标记库。
4 创建内容JSP以填充布局JSP。
5 使用Tiles在tiles-defs.xml中定义内容。
1、 创建Tiles定义
基于XML配置文件的定义和属性
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "tiles-config_1_1.dtd" >
<component-definitions>
<definition name=""/>
</component-definitions>
2 、启动Tiles插件
要启动并使用Tiles,需要将以下定义添加到应用程序的struts-config.xml文件中:
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml" />
</plug-in>
在plug-in元素中,您可以加入几个set-property元素给Plugin类传入附加的参数
。definitions-config参数指定包含tiles定义的xml文件。如果使用了多个文件名,则它们之间用逗号分隔。
definitions-debug参数指定调试的层次,允许值为:
0 :不输出调试信息。
1 :提供部分调试信息。
2 :提供完整的调试信息。
缺省值为0。
definitions-parser-details参数指定当定义文件被解析时所需要的调试信息的层次,该值传给Commons Digester。所允许的值同definitions-debug参数,缺省值为0。
definitions-parser-validate参数指明解析器是否验证Tiles配置文件,允许值为true和false,缺省值为true。
还有一个叫做definitions-factory-class的参数没有显示出来。您可以创建一个自定义工厂,然后在这里给出类名,缺省值为org.apache.struts.tiles.xmlDefinition.I18NfactorySet。
该定义使struts为应用程序加载并初始化Tiles插件。
3 、创建布局JSP并使用Tiles标记库
/pages/mainlayout.jsp
<%@ taglib uri="/tags/struts-tiles" prefix="tiles"%>
4 、创建内容JSP , 建立模板页面
/pages/header.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean"%>
<%@ taglib uri="/tags/struts-html" prefix="html"%>
<%@ taglib uri="/tags/struts-logic" prefix="logic"%>
<table width="100%" border="1" height="100%">
<tr height="20%">
<td colspan="2">
<tiles:insert attribute="top" ></tiles:insert>
</td>
</tr>
<tr height="60%">
<td width="20%">
<tiles:insert attribute="menu"></tiles:insert>
</td>
<td width="80%">
<tiles:insert attribute="content"></tiles:insert>
</td>
</tr>
<tr height="20%">
<td colspan="2">
<tiles:insert attribute="footer"></tiles:insert>
</td>
</tr>
</table>
Welcome !
5、使用Tiles在tiles-defs.xml中定义内容。
<component-definitions>
<!-- 配置 tiles显示的根模版 -->
<definition name="tiles:/template" path="/layout.jsp">
<put name="top" value="top.jsp" />
<put name="menu" value="menu.jsp" />
<put name="content" value="welcome.jsp" />
<put name="footer" value="footer.jsp" />
</definition>
<!-- 首次访问的页面 -->
<definition name="tiles:/index" path="/layout.jsp"
extends="tiles:/template">
</definition>
</component-definitions>
---------------------------
注意 : 在 struts-config.xml 配置文件中, 只要将相应的<forward /> 中的 path 属性修改为 tiles-defs.xml 中的name就可以拉。。
ok , 大功告成拉。。。 赶快运行你的杰作看看吧。。。。。。。