SpringMVC整合Tiles框架
SpringMVC整合Tiles框架
Tiles组件
tiles-iconfig.xml
Tiles是一个JSP布局框架。
Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它用模板定义网页布局,每个页面模板都是一个简单的 JSP 页,它定义了一些由占位符组成的外形,以放置内容。执行时,Tiles 将会用相应的内容来替换占位符,因此,创建整个页面即形成布局。Tiles框架是建立在JSP的include指令基础上的,但它提供了比JSP的include指令更强大的功能。Tiles框架具有如下特性:
1. 创建可重用的模板
2. 动态构建和装载页面
3. 定义可重用的Tiles组件
4. 支持国际化。
接下来就介绍Tiles框架的基本使用。
<tiles-definitions>标签内主要的子节点就是<definition>标签,这个标签属性如下:
属性 |
||||
名称 |
是否必须 |
值必须 |
值类型 |
说明 |
name |
true |
true |
java.lang.String |
指定将要创建的一个definition bean的访问名称。这个必须有的。 |
template |
false |
true |
java.lang.String |
哪一个文件是模板文件,这个模板文件后面会介绍。 |
role |
false |
true |
java.lang.String |
如果配置了这个值的话,需要role的值相等,这个definition才被有效访问,这个功能我没有深究,也不推荐使用,建议大家建立自己更完善的权限控制管理。当然欢迎朋友们完善role应用的示例,tiles自带role的示例,有兴趣的人去读一下就明白了。 |
extends |
false |
true |
java.lang.String |
继承哪一个definition,值是你要继承的definition的name的值。高使用率的属性。 |
preparer |
false |
true |
java.lang.String |
呵,我没使用,如果你要使用的话,要写一个实现他的Prepare接口的类,作用就是在展现你定义的页面前会先执行你的prepare。 |
应用程序布局
我们的目标是我们Spring3HelloWorld应用程序添加页眉,页脚和菜单。以下将是相同的布局。
所需JAR包
上述表中突出显示的jar文件要添加新的Tiles集成项目。
在Spring mvc 中配置Tiles框架
要配置Tiles,在spring-servlet.xml中配置一个TilesConfig的<bean>。打开spring-servlet.xml,并添加下面的代码<beans></beans>标记之间。
WEB-INF/spring-servlet.xml:
1 <bean id="viewResolver"
2 class="org.springframework.web.servlet.view.UrlBasedViewResolver">
3 <property name="viewClass">
4 <value>
5 org.springframework.web.servlet.view.tiles2.TilesView
6 </value>
7 </property>
8 </bean>
9 <bean id="tilesConfigurer"
10 class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
11 <property name="definitions">
12 <list>
13 <value>/WEB-INF/tiles.xml</value>
14 </list>
15 </property>
16 </bean>
通过上面定义的参数.在WEB-INF中写一个tiles的配置文件"tiles.xml"这个xml为我们的web项目定义Tiles
WEB-INF/tiles.xml:
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE tiles-definitions PUBLIC
3 "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
4 "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
5 <tiles-definitions>
6 <definition name="base.definition"
7 template="/WEB-INF/jsp/layout.jsp">
8 <put-attribute name="title" value="" />
9 <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
10 <put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
11 <put-attribute name="body" value="" />
12 <put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
13 </definition>
14
15 <definition name="contact" extends="base.definition">
16 <put-attribute name="title" value="Contact Manager" />
17 <put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" />
18 </definition>
19
20 </tiles-definitions>
在这里,我们有tiles.xml定义模板base.definition。该布局包含的属性,如头,标题,主体,菜单和页脚。然后扩展和布局的新关联页面。我们覆盖默认的布局改变Body和Title的内容。
创建我们的JSP文件
我们写一个layout.jsp作为我们web项目的布局页面然后引入相应的页面
WEB-INF/jsp/layout.jsp
1 <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
3 "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title><tiles:insertAttribute name="title" ignore="true" /></title>
8 </head>
9 <body>
10 <table border="1" cellpadding="2" cellspacing="2" align="center">
11 <tr>
12 <td height="30" colspan="2"><tiles:insertAttribute name="header" />
13 </td>
14 </tr>
15 <tr>
16 <td height="250"><tiles:insertAttribute name="menu" /></td>
17 <td width="350"><tiles:insertAttribute name="body" /></td>
18 </tr>
19 <tr>
20 <td height="30" colspan="2"><tiles:insertAttribute name="footer" />
21 </td>
22 </tr>
23 </table>
24 </body>
25 </html>
WEB-INF/jsp/header.jsp
26 <h1>Header</h1>
WEB-INF/jsp/menu.jsp
27 <span style="font-size: 14px;"><p>Menu</p></span>
WEB-INF/jsp/footer.jsp
<span style="font-size: 14px;"><p>Copyright <code class="xml plain">©</code>Zemo.com</p></span>
所有工作准备就绪部署就行了
SpringMVC整合Tiles框架的更多相关文章
- Springmvc整合tiles框架简单入门示例(maven)
Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...
- springmvc整合mybatis框架源码 bootstrap
A集成代码生成器 [正反双向(单表.主表.明细表.树形表,开发利器)+快速构建表单 下载地址 ; freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类 ...
- springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM
A 调用摄像头拍照,自定义裁剪编辑头像 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单; 技 ...
- SSM框架-----------SpringMVC+Spring+Mybatis框架整合详细教程
1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One ...
- SpringMVC整合Shiro权限框架
尊重原创:http://blog.csdn.net/donggua3694857/article/details/52157313 最近在学习Shiro,首先非常感谢开涛大神的<跟我学Shiro ...
- Spring+SpringMVC+MyBatis+Maven框架整合
本文记录了Spring+SpringMVC+MyBatis+Maven框架整合的记录,主要记录以下几点 一.Maven需要引入的jar包 二.Spring与SpringMVC的配置分离 三.Sprin ...
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包 数据库表 数据库表就不用教大家了,一张表,很简 ...
- SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能
SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...
- 整合SSM框架必备基础—SpringMVC(下)
在上一篇文章<整合SSM框架必备基础-SpringMVC(上)>中,胖达介绍了关于SpringMVC的诞生.优势以及执行流程等理论知识点,这篇文章打算在实操中加深一下对SpringMVC的 ...
随机推荐
- Codeforces Round #325 (Div. 1) D. Lizard Era: Beginning
折半搜索,先搜索一半的数字,记录第一个人的值,第二个人.第三个人和第一个人的差值,开个map哈希存一下,然后另一半搜完直接根据差值查找前一半的答案. 代码 #include<cstdio> ...
- 。。。JDBC里面的sql与hibernate里面的hql有关占位符"?"的总结。。。
今天在看Hibernate的时候,似乎又有了一些收获的东东,嘻嘻... 我记得很清楚:以前用JDBC操作数据库的时候是这样的: String sql = "select * from use ...
- ligerui_实际项目_003:form中添加数据,表格(grid)里面显示,最后将表格(grid)里的数据提交到servlet
实现效果: "Form"中填写数据,向本页"Grid"中添加数据,转换成Json数据提交,计算总和,Grid文本框可编辑,排序 图片效果: 总结: //disp ...
- JavaScript中Date(日期对象),Math对象--学习笔记
Date对象 1.什么是Date对象? 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 语法:var Udate=new Date(); 注:初始值为当前时间(当前电脑系统 ...
- 用VS2010编C#程序扫盲
0. Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应 ...
- [JAVA]在linux中设置JDK环境,ZendStudio,Eclipse
1.准备JDK安装包 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载对应平台的tar.gz格式压 ...
- 记一个由MemCached引发的性能问题
最近有个项目用loadrunner做了压力测试,发现并发量还不到200服务器就支撑不住了.boss那边紧急开会,说此项目最近3个月内将有100家中大型公司用于校园招聘工作,如果这个问题不解决公司有可能 ...
- bootstrap导航条在手机上默认展开二级目录,必须用setTimeout才能实现
bootstrap导航条在手机上默认展开二级目录,必须用setTimeout才能实现 $(document).ready(function() { $('.dropdown').hover(funct ...
- TI BLE CC2541的通讯协议.
包类型: 01命令/02数据/03应答消息 开始标志FF/本数据包长度(注意是16进制)/校验码/包ID/包类型01: 表示是命令/01表示下面要开始传输/03字符串编号/字符串长度/结束位FEFF ...
- 关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法
关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法 近期在评估使用NIOS II处理器进行项目的 ...