问题:
Web产品开发中大家会面临着同一个问题----页面中大部分都是固定不变的,变化的只有内容部分,也可以说每个产品都有一定的风格或者是使用了几类模板。 遇到了问题就要想办法解决!相信大家也想找一个方法,提高Web代码的复用性和可维护性。下面介绍一下我们的解决方案。
解决方案:
Apache Tiles 框架来创建可重用的表示组件 ,可以划分表示层以更好地重用布局。
最早的Tiles是组装在Struts1.1里面的,主要目的是为了将复数的jsp页面作为一个的页面的部分机能,然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。 Tiles使得struts在页面的处理方面多了一种选择。并且更容易实现代码的重用。 (百度百科)
相关内容(具体查看ppt):
- Tile
- Template
- Attribute
- Definition
- Nesting and Extending Definitions
- List Attributes
- Wildcard support
- View Preparers
- Others
使用方法(具体代码可参考附件中tiles-demo):
开发工具、插件、开源软件
Eclipse 、Maven、M2Eclipse、JDK1.6(必须1.5or以上)、Tiles2.2、Spring、SpringMVC、slf4j、jstl、jetty
首先新建maven项目,网上有很多介绍,这里省略。
在POM中添加必要的jar依赖,包括Tiles2.2、Spring、slf4j、jstl和servlet(因为用jetty)。具体可以参考下面的附件。
集成spring和springmvc,省略(原因同上,网上介绍的太多啦)。
添加Tiles配置文件,默认在WEB-INF下,格式比较简单。
1)定义模板页面
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
<title><tiles:getAsString name="title" /></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table style="margin: auto; border: 1px; border-style: solid; border-color: #ccc; width: 900px;">
<tr style="height: 100px; background-color: #555;">
<td colspan="2">
<tiles:getAsString name="head" />
</td>
</tr>
<tr>
<td style="width: 200px; height: 500px; background-color: #666;">
<tiles:getAsString name="menu" />
</td>
<td>
<tiles:insertAttribute name="content"></tiles:insertAttribute>
</td>
</tr>
<tr style="height: 50px; background-color: #333;">
<td colspan="2">
<tiles:getAsString name="footer" />
</td>
</tr>
</table>
</body>
</html>
2)在 tiles.xml 中定义和配置模板
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name="base" template="/WEB-INF/pages/string/layout.jsp" >
<put-attribute name="title" value="hello tiles"></put-attribute>
<put-attribute name="head" value="head"></put-attribute>
<put-attribute name="menu" value="menu"></put-attribute>
<put-attribute name="footer" value="footer"></put-attribute>
</definition>
</tiles-definitions>
3)集成Spring
将springmvc与tiles集成,主要是是在mvc-servlet中添加配置,如下:
指定tiles配置文件位置(代码如下)
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
</bean>
配置tiles视图解析(代码如下)
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass">
<value>
org.springframework.web.servlet.view.tiles2.TilesView
</value>
</property>
</bean>
<bean id="tilesResolver" class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />
<property name="order" value="1" />
<property name="viewNames">
<list>
<value>*</value>
</list>
</property>
</bean>
配置jstl视图解析(代码如下)
<bean id="filenameController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />
<bean id="jstlViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
<property name="order" value="2" />
</bean>
完成以上步骤基本就可以了
参考资料:
http://tiles.apache.org/2.2/framework/tutorial/index.html
Warning! Tiles users that use Tiles 2.1.1 or 2.1.0 version should not install it in a production environment, due to a discovered security problem. Upgrade Tiles.
Tiles 2.0.x is not involved in this security bug.
Tiles Runtime Environment
a Java Runtime Environment following the Java SE 5.0 specifications;
a servlet container that supports Servlet 2.4 (or above) and JSP 2.0 (or above).
分享到:
相关推荐
### Spring结合Tiles框架详解 #### 一、Spring与Tiles框架简介 **Spring**是一个轻量级的Java开发框架,主要用于简化企业级应用的开发过程。...通过上述介绍,相信读者已经对Spring结合Tiles有了更深入的理解。
下面,我们将详细介绍如何在SpringMVC4项目中整合Tiles3。 一、环境准备 在开始整合前,确保你的项目已经配置了以下基础组件: 1. SpringMVC 4.x:作为主框架,处理请求和响应。 2. Tiles 3.x:作为视图解析器,...
下面将详细介绍这些jar包及其作用: 1. **struts-tiles.jar**:这是Tiles的核心库,包含了Tiles的配置、解析和渲染等关键组件。它提供了Tiles定义、Tiles容器和Tiles请求处理等功能,使得开发者能够定义页面模板并...
接下来,我们按照给定的部分内容来详细介绍如何在Tiles框架中添加一个新的页面: ##### 1. 创建模板 (Create a Template) 首先,我们需要创建一个模板文件,比如`layout.jsp`。这个文件将包含整个页面的基本结构,...
二、objTo3d-tiles工具介绍 “objTo3d-tiles”是一个专门用于将3D模型转换为3D Tiles格式的工具,它支持OBJ、GLTF等常见3D模型格式。OBJ是3D建模软件常用的导出格式,而GLTF则是一种高效且跨平台的3D图形传输格式,...
本文将详细介绍如何在Struts-2.1.6框架中整合Tiles2,并通过具体步骤指导完成整个配置过程。对于那些希望利用Struts2和Tiles2来构建高效、可维护的Web应用的开发者来说,本文提供了宝贵的实践指南。 #### 二、...
本文将详细讲解GeoServer 2.15.1版本中的矢量切片插件及其工作原理,同时介绍如何安装和使用该插件。 矢量切片是现代Web地图的一种高效表示方式,它将复杂的地理数据转化为一系列小型、轻量级的矢量数据包,从而在...
**JSF(MyFaces)介绍** JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE标准,它简化了开发Web应用程序的过程。MyFaces是JSF规范的一个开源实现,提供了额外的功能和性能优化。MyFaces支持JSF 1.x 和 2.x ...
在构建Web应用程序时,我们经常需要一套强大的布局和模板管理工具来提高开发效率和应用的统一性。...以上就是关于如何在Spring MVC和Spring Web Flow项目中使用Sitemesh替换Tiles2的详细步骤和优势介绍。
#### 六、介绍 Tiles Struts Tiles 是一种用于构建复杂网页布局的框架,它可以更好地组织和管理页面元素,使得页面更易于维护。Tiles 提供了一种灵活的方式来定义页面的不同部分,如头部、主体和底部,并允许这些...
这个“tiles示例”提供了对Tiles组件的简单介绍,帮助开发者了解如何在实际项目中应用它。 “TilesTag”很可能指的是Tiles框架中的标签库,这是Tiles框架的核心组成部分之一,允许开发者在JSP页面中使用特定的标签...
通过以上介绍,我们可以看到Struts Tiles不仅简化了Web页面的布局设计,还极大地提高了开发效率和代码的可维护性。在实际项目中,合理利用Tiles可以帮助我们更好地组织代码结构,减少重复工作量,提高整体开发体验。
文章《An Overview of Tiles in HEVC》介绍的是高效率视频编码(HEVC)标准中的一个新特性——Tile。HEVC是由国际标准化组织(ISO)和国际电信联盟(ITU)的视频编码专家组(VCEG)共同合作开发的最新视频编码标准。...
Struts2.0和Tiles是两个非常重要的Java Web开发框架,它们在构建高效、结构化的MVC(模型-视图-控制器)应用中扮演着重要...在Csdn Blog中,你可以找到详细的过程介绍和代码解释,这将有助于深入理解和实践这些概念。
下面将详细介绍Tiles标签的使用、配置以及其在Struts中的应用。 首先,要使用Tiles标签,我们需要在JSP页面中引入Tiles的TLD(Tag Library Descriptor)文件。这通常通过在页面头部添加如下声明来实现: ```jsp ...
下面将详细介绍Struts2 Tiles的使用步骤和原理。 1. **配置初始化监听器** 在`web.xml`文件中,我们需要添加`StrutsTilesListener`监听器,以便在应用启动时初始化Tiles框架。这一步确保了Tiles的相关类能够正确...
1. **Tiles架构介绍**:Tiles全称为Tiles Framework,最初是Apache Struts项目的一部分,现在独立成为Apache Tiles项目。它是基于MVC(Model-View-Controller)设计模式的视图层解决方案,专门用于构建和组合Web页面...
文章的标题为“Custom Map Tiles (Part 3 - TileStache)”,表明这是一系列关于自定义地图瓦片的文章的第三部分,专注于介绍TileStache的相关内容。TileStache是一个用于生成、缓存和提供地图瓦片的Web服务。之前的...
《Structs in Action中文完全版》第11章“用Tiles开发应用”详细介绍了如何利用Tiles框架与Struts框架相结合来提升Web应用程序的可维护性和灵活性。本章重点讨论了如何利用动态模板和动态包含来提高Web应用的可用性...
4. **文档**:详细介绍了库的安装、配置、使用方法以及可能遇到的问题和解决方案。 5. **测试用例**:验证库功能的正确性,同时也为开发者提供了测试自己代码的参考。 使用`brasil.gov.tiles`库,开发者可以实现...