`

Spring中整合Titles

阅读更多


 在《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";
}
}

 

运行时显示的界面如下:



关于tiles的更多教程:

掌握Tiles 框架 (一)---Tiles入门和Tiles 框架和体系结构

Struts框架中 's Tiles使用入门教程

推荐使用tiles2

如何制作一个基于Tile的游戏(2) Cocos2d-x 2.0.4

 

你可以在这里下载并尝试这个例子:

 

源代码 :Download
War :Download
  • 大小: 9.2 KB
分享到:
评论

相关推荐

    一个漂亮,易用简单的提示框sweet-titles

    在实际应用中,"Sweet Titles"可用于多种场景。例如,它可以用于表单验证,当用户填写错误信息时,提示框能即时指出问题;也可以在导航菜单上添加提示,帮助用户了解各个功能的作用;甚至在数据可视化图表上,为复杂...

    netflix_titles.csv

    The streaming service’s number of movies has decreased by more than 2,000 titles since 2010, while its number of TV shows has nearly tripled. It will be interesting to explore what all other ...

    struts and titles

    描述中的"struts结合titles的一个小例子,当备用"可能指的是一个小型的演示或教程项目,用于展示如何在Struts中集成Tiles进行页面布局。在这样的项目中,通常会有一个或多个Action类来处理用户请求,这些请求会被...

    按类型查询titles表的对应数据

    通过titles的类型查询对应信息 Titles t=new Titles(); List&lt;String&gt; type=dao.getalltype(t); for(String types:type){ System.out.println(types); } HibernateSessionFactory.closeSession(); }

    大气金色粒子活动颁奖典礼文字标题片头 Awards Titles 3TJ008004

    标题 "大气金色粒子活动颁奖典礼文字标题片头 Awards Titles 3TJ008004" 描述的是一个适用于活动颁奖典礼的视觉效果资源,主要用于制作开场片头或者文字标题展示。这种效果通常用于吸引观众注意力,为活动增添专业且...

    45.将titles_test表名修改为titles_2017.md

    45.将titles_test表名修改为titles_2017.md

    springboot+vue基于spring boot的纺织品企业财务管理系统java毕业论文.doc

    titles: SpringBoot+Vue基于Spring Boot的纺织品企业财务管理系统Java毕业论文 本文主要介绍了基于Spring Boot的纺织品企业财务管理系统的设计与实现。该系统使用Spring Boot框架和MySQL数据库,实现了对纺织品...

    Study on the Translation of English Film Titles from the Perspec

    《从生态翻译学视角研究英语电影标题的翻译》是一篇深入探讨翻译理论与实践的学术论文,主要聚焦于英语电影标题在跨文化交流中的转化过程。生态翻译学是近年来翻译研究领域的一个重要分支,它强调翻译活动是文化生态...

    struts1.2+spring(论坛项目)

    一个基于 struts1.2+spring+tomcat数据源的...布局采用struts的titles标签 数据的CRUD采用spring的JDBCTemplate 里面做了权限控制 用到了tomcat数据源(比较老的技术) 部署非常简单,里面有详细说明文档 毕设的好材料

    jsp titles struts 简单的OA系统

    【标题】"jsp titles struts 简单的OA系统" 涉及的主要知识点是基于Java Web技术栈,特别是JSP(JavaServer Pages)和Struts框架构建一个基础的办公自动化(OA)系统。OA系统是企业信息化管理的重要组成部分,用于...

    牛客SQL题解 – 从titles表获取按照title进行分组

    在SQL(Structured Query Language)中,分组查询是一种常见的数据处理操作,用于将数据库中的记录按照一个或多个列的值进行归类。本题目的核心是利用`GROUP BY`子句来实现数据分组,并结合`COUNT()`聚合函数计算每...

    jsf hibernate tiles 整合登录

    8. **JSF-H-titles**:可能是一个包含JSF 与Hibernate 整合示例的文档或教程,详细解释了整合过程和技术细节,可能还包含代码示例。 整合JSF、Hibernate 和Tiles 能够创建出高效、可维护的Web 应用。通过这种方式,...

    Spring 实现excel及pdf导出表格示例

    2. 接着,我们获取到模型中的标题列表(titles),并创建标题样式(HSSFCellStyle)和标题字体(HSSFFont)。标题样式设置为居中对齐,垂直对齐,并设置加粗的字体。然后设置默认列宽和单元格高度。 3. 通过for循环...

    3D Titles 电脑,水杯,书场景模型

    【3D Titles 电脑,水杯,书场景模型】是一个专为Cesium设计的三维场景模型,它将现实世界中的物体——电脑、水杯和书——以三维形式呈现,为用户带来更生动、真实的视觉体验。这个场景模型利用了先进的三维地理空间...

    Laravel开发-titles

    本文将深入探讨 Laravel 中的标题生成策略及其在实际开发中的应用。 一、Laravel 5.1 概览 Laravel 5.1 是 Laravel 框架的一个稳定版本,发布于2015年,它引入了许多增强功能和改进,包括更好的错误处理、路由系统...

    13.从titles表获取按照title进行分组.md

    13.从titles表获取按照title进行分组.md

    springboot-excel.zip

    在本文中,我们将深入探讨如何在SpringBoot项目中利用Maven和Java工具类实现Excel的导入与导出功能,特别是通过自定义注解和反射来获取数据。SpringBoot以其便捷的配置和强大的功能,已经成为Java开发中的热门框架,...

    14.从titles表获取按照title进行分组2.md

    14.从titles表获取按照title进行分组2.md

    Simple-titles-265589_Free!_template_authorqb8_

    标题“Simple-titles-265589_Free!_template_authorqb8_”暗示我们正在处理一个设计简洁的视频标题模板,可能是用于电影、电视节目或者个人视频创作。"Free!"表明这是一个免费资源,而"authorqb8"是模板的创作者或...

    On_the_Translation_of_Film_Titles.doc

    On_the_Translation_of_Film_Titles.doc

Global site tag (gtag.js) - Google Analytics