在《Spriing实战(第三版)》这本书中,有一个使用titles的例子,但是这是一个不完整的例子。那么要参照起来就比较难了,于是找到了下面这篇博客。

在Spring中使用tiles2 (因为是英文的,同时又是比较简单的英文,那么就翻译一下,当作学习)

在这个例子中,你将学会怎样整合Spring和Tiles2.这个例子的目录结构如下:

添加下面的库文件到库目录,(当然如果是在Eclipse中就是对应的lib文件夹了)。

01.antlr-runtime-3.0
02.commons-logging-1.0.4
03.org.springframework.asm-3.0.0.M3
04.org.springframework.beans-3.0.0.M3
05.org.springframework.context-3.0.0.M3
06.org.springframework.context.support-3.0.0.M3
07.org.springframework.core-3.0.0.M3
08.org.springframework.expression-3.0.0.M3
09.org.springframework.web-3.0.0.M3
10.org.springframework.web.servlet-3.0.0.M3
11.
12.commons-beanutils-1.7.0
13.commons-digester-1.8
14.commons-logging-api-1.1
15.jstl
16.standard
17.tiles-api-2.0.4
18.tiles-core-2.0.4
19.tiles-jsp-2.0.4
你将会看到如何创建一个有头部,目录和主体部分的简单典型的Tiles布局。
在Spring中使用Tiles,在Spring的配置文件中配置下面Tile的定义。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="viewResolver" class="org.springframework.web.servlet.view. ResourceBundleViewResolver" p:basename="views" /> <context:component-scan base-package="com.vaannila.web" /> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2. TilesConfigurer" p:definitions="/WEB-INF/tiles-defs.xml" /> </beans>

使用definitions属性指定Tiles定义文件的位子,这里这个位置是“/WEB-INF/tiles-defs.xml"。Tiles定义文件展示如下:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> <tiles-definitions> <definition name="baseLayout" template="/WEB-INF/tiles/baseLayout.jsp">
<put-attribute name="title" value="Template"/>
<put-attribute name="header" value="/WEB-INF/tiles/header.jsp"/>
<put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/tiles/body.jsp"/>
<put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp"/>
</definition> <definition name="welcome" extends="baseLayout">
<put-attribute name="title" value="Welcome"/>
<put-attribute name="body" value="/WEB-INF/jsp/welcome.jsp"/>
</definition> <definition name="friends" extends="baseLayout">
<put-attribute name="title" value="Friends"/>
<put-attribute name="body" value="/WEB-INF/jsp/friends.jsp"/>
</definition> <definition name="office" extends="baseLayout">
<put-attribute name="title" value="Office"/>
<put-attribute name="body" value="/WEB-INF/jsp/office.jsp"/>
</definition> </tiles-definitions>

这里我们首先定义了基本的布局,以后我们将扩展这个基本的布局并且将通过仅仅改变标题和主体部分创建更多tiles。

 
为了显示视图我们使用ResourceBundleViewResolver。通过定义存储了一对关键值的views.properties文件,我们使用了的基本名属性指定这些。
welcome.(class)=org.springframework.web.servlet.view.tiles2.TilesView
welcome.url=welcome friends.(class)=org.springframework.web.servlet.view.tiles2.TilesView
friends.url=friends office.(class)=org.springframework.web.servlet.view.tiles2.TilesView
office.url=office about.(class)=org.springframework.web.servlet.view.JstlView
about.url=/WEB-INF/jsp/about.jsp

welcome, friends 和 office 引用tile 定义的名字 (the one to right side of the = sign)。我们使用 "org.springframework.web.servlet.view.tiles2. TilesView" 类展示tile.你也可以一起使用其他的TilesView。相关的url通过org.springframework.web.servlet.view.JstlView被映射到相关的jsp页面。

baseLayout.jsp文件包含了拥有不同区域的的表结构。

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><tiles:insertAttribute name="title" ignore="true" /></title>
</head>
<body>
<table border="1" cellpadding="2" cellspacing="2" align="center">
<tr>
<td height="30" colspan="2">
<tiles:insertAttribute name="header" />
</td>
</tr>
<tr>
<td height="250">
<tiles:insertAttribute name="menu" />
</td>
<td width="350">
<tiles:insertAttribute name="body" />
</td>
</tr>
<tr>
<td height="30" colspan="2">
<tiles:insertAttribute name="footer" />
</td>
</tr>
</table>
</body>
</html>

这里我们使用注解controller处理映射去处理请求。在在redirect.jsp页面我们只是请求welcome.htm。

<% response.sendRedirect("welcome.htm"); %>

我们向前到 welcome.htm的url将通过WelcomeController类处理。

package com.vaannila.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class WelcomeController { @RequestMapping("/welcome.htm")
public String redirect()
{
return "welcome";
}
}

运行时显示的界面如下:

Spring中整合Titles的更多相关文章

  1. spring中整合memcached,以及创建memcache的put和get方法

    spring中整合memcached,以及创建memcache的put和get方法: 1:在项目中导入memcache相关的jar包 2:memcache在spring.xml的配置: 代码: < ...

  2. 玩转Spring MVC(五)----在spring中整合log4j

    在前边的基础上,本文主要总结一下如何在spring 中配置log4j,在本文末尾会给出完整项目的链接. 首先是web.xml中要新添加的代码: <!-- 6. 配置log4j --> &l ...

  3. spring中整合ssm框架注解版

    和xml版差不多,只不过创建对象的方式是由spring自动扫描包名,然后命名空间多一行context代码在application.xml中,然后将每个对象通过注解创建和注入: 直接上代码: 1.use ...

  4. Spring中整合Cage,实现验证码功能

    1.pom.xml中添加Cage依赖. <dependency> <groupId>com.github.cage</groupId> <artifactId ...

  5. Spring框架中整合JUnit单元测试的方法

    一. 步骤: 1. 拷贝jar包: 1. JUnit-4.9.jar和spring-test-4.2.4.RELEASE.jar ; 2. 替换原来的main函数: 1. 在测试类上使用注解方式替换: ...

  6. 让Mongo在Spring中跑起来

    本文标题为<让Mongo在Spring中跑起来>,旨在Spring中如何成功连接MongoDB并对其进行增删改查等操作,由于笔者也是刚接触,对其中的一些原由也不甚了解,若有错误之处,敬请指 ...

  7. Spring中AOP的实现

    Spring中整合了AOP的功能,虽然有不足,没有专门做AOP框架的那么完美,但是用一用感觉还是不错的 一些概念: AOP 面向切面编程 aspect 切面/切面类(我个人认为一个真正被解耦的程序,切 ...

  8. ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 时 Session 关闭问题

    一.问题描述 在向ASP.NET MVC中整合NHibernate.Spring.NET后,如下管理员与角色关系: 类public class Admin { public virtual strin ...

  9. [转载] 【Shiro】Apache Shiro架构之实际运用(整合到Spring中)

    写在前面:前面陆陆续续对Shiro的使用做了一些总结,如题,这篇博文主要是总结一下如何将Shiro运用到实际项目中,也就是将Shiro整到Spring中进行开发.后来想想既然要整,就索性把Spring ...

随机推荐

  1. 从 NavMesh 网格寻路回归到 Grid 网格寻路。

    上一个项目的寻路方案是客户端和服务器都采用了 NavMesh 作为解决方案,当时的那几篇文章(一,二,三)是很多网友留言和后台发消息询问最多的,看来这个方案有着广泛的需求.但因为是商业项目,我无法贴出 ...

  2. Web---myAjax(自己写底层)-隐藏帧技术

    讲解网站一般都有的一个功能,就是注册时候的,实现验证用户名是否存在的功能. 源代码演示: reg.jsp: <%@ page language="java" import=& ...

  3. Class.forName()数据库驱动

    在学习jdbc中,用到Class.forName(驱动);,当时学习的时候知道Class.forName就是加载一个类到虚拟机,在加载一个类的时候,这个类的信息会被放到一个方法区,一个CLass 在J ...

  4. sql执行计划

    http://www.cnblogs.com/kissdodog/p/3160560.html

  5. 让php永远后台运行

    ignore_user_abort(true); // 后台运行set_time_limit(0); // 取消脚本运行时间的超时上限

  6. SharePoint 2010 修改默认列表样式

    SharePoint 2010  修改默认列表样式 :可以通过修改 下面两个全局配置进行修改.(未完..更新中...)  C:\Program Files\Common Files\Microsoft ...

  7. delphi 提取字符中的数字

    Function Setstring(cString:string):string;   {提取数字} VAr   i:integer;   str:string;  begin    str:='' ...

  8. Storm系列(十四)架构分析之Executor-输入和输出处理

    Executor的数据 mk-executor-data函数用于定义Executor中含有的数据. Executor的输入处理 根据executor-id从Worker的:executor-recei ...

  9. strace使用详解

    (一) strace 命令   用途:打印 STREAMS 跟踪消息. 语法:strace [ mid sid level ] ... 描述:没有参数的 strace 命令将所有的驱动程序和模块中的所 ...

  10. IIS8之System.ServiceModel.Activation.HttpModule錯誤處理

    在Windows Server 2012 R2上安装一个WCF服务,怎么弄都是报System.ServiceModel.Activation.HttpModule錯誤 经过不懈尝次及查找资料,终于找到 ...