Tiles框架
++YONG原创,转载请声明
Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它用模板定义网页布局,每个页面模板都是一个简单的 JSP 页,它定义了一些由占位符组成的外形,以放置内容。执行时,Tiles 将会用相应的内容来替换占位符,因此,创建整个页面即形成布局。Tiles框架是建立在JSP的include指令基础上的,但它提供了比JSP的include指令更强大的功能。Tiles框架具有如下特性:
1. 创建可重用的模板
2. 动态构建和装载页面
3. 定义可重用的Tiles组件
4. 支持国际化。
接下来就介绍Tiles框架的基本使用。
1. 设置Tiles模板引擎在Struts 中,Tiles随着它一同发布。如果您要自行设定Tiles,您必须要有commons-beanutils.jar、commons-logging.jar、commons-collections.jar、commons-digester.jar、struts.jar四个jar文件在您的WEB-INF/lib目录中。
虽然Stuts附带了Tiles,但在默认情况下是Tiles是未启用的。要启用Tiles框架,要在struts-config.xml中加入以下的内容:
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<!-- Path to XML definition file -->
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
<!-- Set Module-awareness to true -->
<set-property property="moduleAware" value="true" />
</plug-in>
完成之后,您就可以开始使用Tiles的功能了。
2. 使用XMl配置模板资源在Tiles中,您可以用XML或JSP文件来做配置文件,用它来管理页面配置的相关资源,当应用程序启动时,Tiles框架会加载这个文件把它放置在内存。这个配置文件(本文采用XML文件)的路径和名称在如上文配置中已经指定了,即放置在/WEB-INF/下,名为tiles-defs.xml,在当中如下撰写:
<?xml version="1.0" encoding="UTF-8"?><o:p></o:p>
<!DOCTYPE tiles-definitions PUBLIC<o:p></o:p>
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"<o:p></o:p>
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"><o:p></o:p>
<tiles-definitions><o:p></o:p>
<!--classicLayout--><o:p></o:p>
<definition name="layout.base" path="/layouts/classicLayout.jsp"><o:p></o:p>
<put name="title" value="++YONG" /><o:p></o:p>
<put name="header" value="/template/header.jsp" /><o:p></o:p>
<put name="menu" value="/template/menu.jsp" /><o:p></o:p>
<put name="footer" value="/template/footer.jsp" /><o:p></o:p>
<put name="body" value="/template/body.jsp" /><o:p></o:p>
</definition><o:p></o:p>
<o:p> </o:p>
<!-- 后台管理 --><o:p></o:p>
<definition name="layout.backmanager" path="/layouts/classicLayout.jsp"><o:p></o:p>
<put name="title" value="Back Manager" /><o:p></o:p>
<put name="header" value="/template/back_header.jsp" /><o:p></o:p>
<put name="menu" value="/back/menu.jsp" /><o:p></o:p>
<put name="body" value="/back/main.jsp" /><o:p></o:p>
<put name="footer" value="/template/footer.jsp" /><o:p></o:p>
</definition><o:p></o:p>
<o:p> </o:p>
<!-- 前台首页 --><o:p></o:p>
<definition name="front.main" extends="layout.base"><o:p></o:p>
</definition><o:p></o:p>
<o:p> </o:p>
<!-- 后台管理-首页 --><o:p></o:p>
<definition name="back.main" extends="layout.backmanager"><o:p></o:p>
</definition><o:p></o:p>