Apache Tiles 2.x 应用指南(转)
基本用法
设置Tiles元素 - 核心配置文件的书写方法
Tiles核心配置文件格式为xml,文档类型为tiles-definitions。要在每一个配置文件的开头加入下述说明:
- <!DOCTYPE tiles-definitions PUBLIC
- "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
- "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
Tiles中的基本元素有三种:定义、模板和属性。Tiles核心配置文件(tiles-definitions)中的基本单元是“definition”。一个“definition”必须与一个“template” 相对应。“template”是一个URI、通常情况下指的是一个JSP页面。一个“definition”可以包含多个“attribute”,一个attribute可以是一个字符串、可以是一个定义的名字、也可以是一个模板。
可以使用定义描述一个带有名字的模板。下例定义了一个没有属性的模板:
- <tiles-definitions>
- <definition name="header" template="/fragments/header.jsp" />
- </tiles-definitions>
模板可以包含一个或多个属性,属性可以是一个字符串,或者是一个定义的名字,或者是一个模板。下例定义了一个包含属性的模板:
- <tiles-definitions>
- <definition name="header" template="/fragments/header.jsp" />
- <definition name="main" template="/index.jsp">
- <put-attribute name="title" value="标题名" type="string"/>
- <put-attribute name="header" value="header" type="definition"/>
- <put-attribute name="footer" value="/fragments/footer.jsp" />
- </definition>
- </tiles-definitions>
定义可以被继承,继承之后的定义属性可以改变,模板不可以改变。下例定义了一个具有继承关系的模板:
- <tiles-definitions>
- <definition name="header" template="/fragments/header.jsp" />
- <definition name="main" template="/index.jsp">
- <put-attribute name="title" value="主画面" type="string"/>
- <put-attribute name="header" value="header" type="definition"/>
- <put-attribute name="footer" value="/fragments/footer.jsp" />
- </definition>
- <definition name="user" extends="main">
- <put-attribute name="title" value="新建用户" />
- </definition>
- </tiles-definitions>
读取Tiles元素 - JSP页面上的处理方法
要想在JSP页面上使用Tiles标签,首先要引入标签库。
- <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
在JSP页面上插入一个模板的基本标签是<tiles:insertTemplate />,如下例:
- <tiles:insertTemplate template="/fragments/footer.jsp"/>
如果插入的模板包含属性,则在插入模板的同时,必须使用<tiles:putAttribute />标签为其指定属性值:
<tiles:putAttribute name="title" value="主画面"/>
<tiles:putAttribute name="header" value="header"/>
<tiles:putAttribute name="footer" value="/fragments/footer.jsp"/>
</tiles:insertTemplate>
插入一个定义的基本标签是<tiles:insertDefinition />,如下例:
- <tiles:insertDefinition name="main"/>
在模板中可以指定属性的位置。设置一个属性的基本标签有两种,如果属性被指定为定义或模板,则使用<tiles:insertAttribute />标签;如果属性被指定为字符串,则使用<tiles:getAsString />标签。如:
<tiles:getAsString name="title"/>
<tiles:insertAttribute name="header"/>
<tiles:insertAttribute name="footer"/>
Tiles架构在各个领域中的应用
在Web应用中直接使用Tiles架构
在web.xml中加入下述servlet即可实现在Web应用中直接使用Tiles架构的目的。
- <servlet>
- <servlet-name>tiles</servlet-name>
- <servlet-class>
- org.apache.tiles.servlet.TilesServlet
- </servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
TilesServlet默认查找“/WEB-INF/tiles.xml”作为Tiles核心配置文件,如果要手动指定Tiles核心配置文件的位置,可以为Servlet设置名为“definitions-config”的初始化参数值,样例如下:
- <servlet>
- <servlet-name>tiles</servlet-name>
- <servlet-class>
- org.apache.tiles.servlet.TilesServlet
- </servlet-class>
- <init-param>
- <param-name>definitions-config</param-name>
- <param-value>
- /WEB-INF/tiles-defs.xml
- </param-value>
- </init-param>
- <load-on-startup>2</load-on-startup>
- </servlet>
在传统Servlet中利用TilesServlet加载的Tiles定义(definition)可以使用TilesContainer的render方法实现转向到Tiles定义。代码如下:
- TilesContainer container = TilesAccess.getContainer(
- request.getSession().getServletContext());
- container.render("main", request, response);
更多内容
关于Tiles的更多内容,如
List Attributes
请参考Tiles官方网站:http://tiles.apache.org
Tiles 知识要点
Tiles中的三大元素:定义、模板、属性
template = URI{1}
definition = template{1} + attribute*
attribute = STRING{1} | definition{1} | template {1}
Tiles核心配置文件
- <!DOCTYPE tiles-definitions PUBLIC
- "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
- "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
引入Tiles标签库
- <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
在Web应用中使用直接Tiles架构
在web.xml中关于Tiles架构的定义
- <servlet>
- <servlet-name>tiles</servlet-name>
- <servlet-class>
- org.apache.tiles.servlet.TilesServlet
- </servlet-class>
- <init-param>
- <param-name>definitions-config</param-name>
- <param-value>
- /WEB-INF/tiles-defs.xml
- </param-value>
- </init-param>
- <load-on-startup>2</load-on-startup>
- </servlet>
JAR包
Tiles开发包
tiles-core-2.0.3.jar
tiles-api-2.0.3.jar
tiles-jsp-2.0.3.jar
Tiles所依赖的开发包
commons-beanutils-1.7.0.jar
commons-digester-1.8.jar
commons-logging-api-1.1.jar
Apache Tiles 2.x 应用指南(转)的更多相关文章
- apache tiles 页面模板的使用
jar包maven <!-- Tiles 模板--> <dependency> <groupId>org.apache.tiles</groupId> ...
- [页面模板框架对比] Apache Tiles VS Sitemesh
1. 原理对比 (1) Apache Tiles 顾名思义,Tile是瓷砖的意思,也就是说一个网页是由多个Tile组成的. 用户通过访问一个页面的Apache Tiles定义名,就可以访问一个由定义文 ...
- 第6章—渲染web视图—使用Apache Tiles视图定义布局
使用Apache Tiles视图定义布局 Tiles是一个免费的开源模板Java应用程序的框架.基于复合模式简化的用户界面的构建.对于复杂的网站仍是最简单.最优雅的方式与任何MVC技术一起工作.S ...
- 《Apache HttpClient 4.3开发指南》
转载自:http://blog.csdn.net/chszs/article/details/16854747 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chs ...
- 使用 Apache Tiles 3 构建页面布局
参考博客:http://aiilive.blog.51cto.com/1925756/1596059Apache Tiles是一个JavaEE应用的页面布局框架.Tiles框架提供了一种模板机制,可以 ...
- spring项目报org.apache.tiles.definition.DefinitionsFactoryException: I/O错误原因及解决办法。
今天升级一个spring项目遇到如下错: HTTP Status 500 - Request processing failed; nested exception is org.apache.til ...
- Spring 4 MVC+Apache Tiles 3 Example
In this post we will integrate Apache Tiles 3 with Spring MVC 4, using annotation-based configuratio ...
- SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架
一.SiteMesh项目简介 OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容 ...
- Apache Kafka Connect - 2019完整指南
今天,我们将讨论Apache Kafka Connect.此Kafka Connect文章包含有关Kafka Connector类型的信息,Kafka Connect的功能和限制.此外,我们将了解Ka ...
随机推荐
- Android多项目依赖在Eclipse中无法关联源代码的问题解决 Ctril 点不进去的解决方法
1. 使用快捷键:Ctrl+shift+R,在弹出框中输入.classpath 找到被作为library引入的那个.classpath文件. 2.将kind="src" path ...
- Aandroid Error之 新导入工程报Unable to resolve target 'android-18'和R cannot be resolved
有段时间没有写安卓了,今天导入以前的项目,结果看到控制台打印出了这样一句:Unable to resolve target 'android-18', 解决方法: 项目->属性->Andr ...
- Struts2 实战经验 之 入门
Struts2以WebWork为核心,采用拦截器机制处理用户请求,这样的设计使业务逻辑控制器能够与Servlet API完全脱离开,降低了藕联性. Part 1. 安装与配置 下载struts-2.3 ...
- JQ----树杈型导航
简单的做了一个树杈型的导航结构如下所示: 废话不多说,上代码: HTML: <div class="wrapper"> <div class="tabt ...
- Oracle数据库中如何选择合适的索引类型 .
索引就好象一本字典的目录.凭借字典的目录,我们可以非常迅速的找到我们所需要的条目.数据库也是如此.凭借Oracle数据库的索引,相关语句可以迅速的定位记录的位置,而不必去定位整个表. 虽然说,在表中是 ...
- zmodem协议的使用(SecureCRT)
SecureCRT可以使用zmodem协议来快速的传送文件,使用非常方便.对于Linux系统,大多数发行版本都自带有rz和sz命令.在SecureCRT中选择Options->Session O ...
- Net Core WebApi单元测试
单元测试 本篇将结合这个系列的例子的基础上演示在Asp.Net Core里如何使用XUnit结合Moq进行单元测试,同时对整个项目进行集成测试. 第一部分.XUnit 修改 Project.json ...
- MySQLBackup 使用说明
001.mysqlbackup介绍: mysqlbackup是一个热备份工具.也就是说它不像mysqldump那样给表上一个全局锁,由于mysqldump上了这个锁,所以就造成客户端只能对 数据库进行 ...
- MFC 遍历FTP服务器目录相关
CInternetSession* pSession; pSession = new CInternetSession; //构造新的连接 CFtpConnection* pFtpCon; pFtp ...
- Android学习笔记——Activity的启动和创建
http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html Android Activity学习笔记——Activity的启动和创建 ...