tiles3布局的几种方式(嵌入SpringMVC)

目前JSP有关的比较有名的服务端页面布局/页面组合框架要数sitemesh和tiles了,这是官方文档地址:http://tiles.apache.org/framework/tutorial/index.html

 

相比较而言tiles的应用更为具体而多样,配置可能稍微复杂,这里记录一下基本的SpringMVC(4.2.5)项目整合tiles3(3.0.7)配置和应用。

应用tiles3需要用到的相关jar包(SpringWEB项目基本包略):

tiles-api-3.0.7.jar
tiles-autotag-core-runtime-1.2.jar
tiles-core-3.0.7.jar
tiles-jsp-3.0.7.jar
tiles-request-api-1.0.6.jar
tiles-request-jsp-1.0.6.jar
tiles-request-servlet-1.0.6.jar
tiles-servlet-3.0.7.jar
tiles-template-3.0.7.jar

commons-beanutils-1.8.0.jar
commons-digester-2.0.jar

 

Spring上下文配置文件中加入启动Bean配置:

	<bean id="tilesconfig"  class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
		<property name="definitions">
			<list>
				<value>/WEB-INF/layout/tiles.xml</value>				
			</list>
		</property>
	</bean>
	
	<bean id="tilesviewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
		<property name="order" value="1" />
		<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
	</bean>

 

建立、配置tiles视图映射文件:

这里用到了tiles配置的继承和重载(重载名为'body'的属性),框架页面为3行布局的形式。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
	"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>

	<definition name="base" template="/WEB-INF/jsp/global/basis.jsp">		
		<put-attribute name="thetitle" value="FIRST PAGE" type="string"></put-attribute>
		<put-attribute name="toper" value="/WEB-INF/jsp/global/top.jsp"></put-attribute>
		<put-attribute name="footer" value="/WEB-INF/jsp/global/bottom.jsp"></put-attribute>
		<put-attribute name="body" value="/WEB-INF/jsp/index.jsp"></put-attribute>
	</definition>
<!-- 	基本扩展 ,继承-->
	<definition name="homepage" extends="base">		
		<put-attribute name="body" value="/WEB-INF/jsp/index.jsp"></put-attribute>	
	</definition>
<!-- 	基本扩展 ,继承-->
	<definition name="userpage" extends="base">
		<put-attribute name="body" value="/WEB-INF/jsp/user/user_list.jsp"></put-attribute>
	</definition>
<!-- 	路径通配符匹配,继承 -->
	<definition name="*/*.page" extends="base">
		<put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp"></put-attribute>
	</definition>


</tiles-definitions>

 

框架页basis.jsp的body内容部分(需要加入tiles标签库声明):

	<table border="0" class="" style="margin:auto;" cellpadding="0" cellspacing="0">
		<tr style="">
			<td style="line-height: 185px;">
				<tiles:insertAttribute name="toper"></tiles:insertAttribute>
			</td>			
		</tr>

		<tr>
			<td style="height: auto;min-height: 490px; height:500px;padding-top: 0;padding-left: 0; text-align: left;" valign="top">				
				<tiles:insertAttribute name="body" />
			</td>
		</tr>
		<tr>
			<td>				
				<tiles:insertAttribute name="footer"></tiles:insertAttribute>
			</td>
		</tr>		
	</table>

 

top页和footer页略。

后台java返回视图的方法:

	@RequestMapping(path="/edit",method={RequestMethod.GET})
	public String edit(Model mdl,HttpServletRequest request, HttpServletResponse response){		
		
		log.info("user/edit");		//
		return "user/user_edit.page";
	}

调试 测试访问:http://localhost:8080/projectname/XXX/edit,能看到内容页面被正确装饰即可。

 

另外,

也可以不在tiles.xml中静态配置被装饰页面和路径的映射,而直接在需要被装饰的JSP页面的body中嵌套:

加入标签库声明:

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>

 

body中的内容被标签嵌套

<body>
<tiles:insertDefinition name="base">
	<tiles:putAttribute name="body">
	<div>
	此种情况需注意body的样式和页面的title
	........
	</div>
	</tiles:putAttribute>
</tiles:insertDefinition>
</body>

 

 

 

 

 

 

 

java之Tiles框架特性和内容 iles框架特性和内容 Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它允许先创建模板,然后在运行时动态地将内容插入到模板中。Tiles 框架建立在JSP的include指令的基础上,但它提供了比JSP的 include指令更强大的功能。Tiles框架具有如下特性: •创建可重用的模板 •动态构建和装载页面 •定义可重用的Tiles组件 •支持国际化 Tiles框架包含以下内容: •Tiles标签库 •Tiles组件的配置文件 •TilesPlugIn插件 在开发Web站点时,常常要求同一站点的所有Web页面保持一致的外观,比如有相同的布局、页头、页尾和菜单。 采用基本的JSP语句创建复合式网页 创建动态Web页面的最基本的办法是为每个页面创建独立的JSP文件。如果网页的相同部分发生需求变更,必须手工修改所有的JSP文件。可见,采用基本的JSP语句来编写上述网页,会导致JSP代码的大量冗余,增加开发与维护成本。 立即下载

相关推荐

tiles3,springmvc,tags,权限控制整合Demo

该Demo使用tiles3实现了页面区块动态改变部分布局,使用@interface实现了权限的控制,使用tags实现界面的简化以及同一界面根据user的权限不同显示的元素不同。如有疑问请q1061203621

推荐使用tiles2

Java基于WEB的开发中,在用户界面方面简化开发的工具上,大家的选择习惯性的受一些知名框架的影响去左右。我也不例外,最早时受struts的影响,使用了tiles,并且很愿意使用这种Tiles的用户界面开发习惯,并且在我的开发团队当中推广这种模式。我觉得采用这种界面开发方法会给我们团队带来一些便利:   1、美工界面工作可以让更懂用户感受的商务人员与美工交流;2、技术人员专注于业务模型的实现;3、...

Java&WAP技术 237

tiles3必用架包

当页面需要动态改变部分块区域,需要使用tiles3进行布局,发生请求时改变部分页面数据,具体使用方案可以参照本人其他博客

tiles3使用Demo

一。为什么使用tiles3    当我们的网页是出现块区域,而我们的请求又不需要改变全局的数据时,使用tiles3进行布局页面,可以使界面只发生部分数据的变化。如图。当我们点击左侧的menu的时候,发送请求,改变数据主界面的数据。二。所以依赖jar    (1)maven管理项目        在&lt;dependencies&gt;&lt;/dependencies&gt;节点下添加如下代码&...

Mister_yang的博客 817

Tiles框架入门教程示例(springmvc整合tiles)

Tiles框架入门教程示例(含Springmvc),简单的springmvc整合tiles框架,maven管理

SpringMVC4整合tiles3

这是springmv4整合tiles3,本人亲测是可以的。

spring整合tiles3简单介绍和使用

对于spring 集成 tiles3 简单介绍 网站一般分为可重复使用的模板正在呈现不同的网页之间的的。例如,一个网站中包含的页眉,页脚,菜单等项目仍然通过了该网站相同,并给它一个共同的外观和感觉。这是很难很难的代码在每一个网页,如果以后需要改变是不是所有的页面需要修改。因此,我们使用模板化机制。我们创建一个共同的页眉,页脚,菜单页,其中包括在每一页。  首先Spring - servle

usernameysz的博客 1230

java 酒店管理系统-spring+mybatis+jsp+tiles3+maven

网上找的一个系统,给一个小兄弟学习用的。项目结构修改了一下,并改成了maven项目集成了jetty 等插件 ,适配大部分公司的项目架构,但各个框架的版本有点老,不过用于学习够了。我用的IntelliJ Idea,如果你也是,那么导入配下数据库应该就能用了

Tiles入门及项目实战

1.Apache Tiles™ Apache Tiles是一个模板布局框架。最初是为了简化Web应用界面开发,如今已不限于JavaEE Web环境。 Tiles允许开发人员定义页面片段,它们在运行时会组装成一个完整的页面。这些片段,或者叫“瓷砖”(tiles本意即瓷砖),被其他页面引入以减少公共元素的重复定义,或者嵌入另一个tiles以组成一系列可重用的模板。 2...

weixin_30653097的博客 379

联想ThinkPad声卡驱动安装避坑指南:从E470到X1 Carbon的通用解法

本文详细介绍了ThinkPad声卡驱动安装的全流程,从硬件识别到驱动获取、安装技巧及深度排错。涵盖E470到X1 Carbon等不同机型的通用解法,帮助用户解决音频驱动问题,提升使用体验。重点讲解了声音驱动的精准识别和安装策略,确保系统稳定运行。

weixin_29207439的博客 708

多重共线性问题 -- 岭回归方法

概述 本篇博客分为三大部分,线性模型、多重共线性问题和岭回归。其中,线性模型中介绍了线性模型定义和普通最小二乘法对线性模型的拟合。第二部分,借由1987-2007年的人口、消费和科技对碳排放的影响的数据来说明多重共线性问题(包括如何从定性和定量两个方面判断多重共线性问题)和多重共线性问题对普通最小二乘估计的影响。第三部分,使用岭回归对第二部分中的多重共线性问题进行拟合,并基于R2R^2R2决定系数...

楚江客的记录 1万+

IDEA maven web项目 Tiles框架学习心得

IDEA maven web项目 Tiles框架学习心得 Tiles Tiles是一种JSP布局框架, 主要目的是将复杂的jsp页面分割成部分,比如头部模块、主体模块、尾部模块,然后将各模块组合成一个最终表示用页面用的。以便减少公共页面元素的重复或嵌入,便于对页面的各个机能的变更及维护,并且更容易实现代码的重用。 基于复合模式,为了简化用户界面的开发而构建,为现代Java应用程序提供一个免费...

QiaoXM的博客 620

MPLAB修改工程名称方法

修改工程名称方法 如下图所示,工程名称为:Loar_V1.0_20210205 现将该工程名称修改为:Loar_V1.1_20210205 修改方法: ①找到工程文件路径,将工程名称修改为Loar_V1.1_20210205 注意:此时打开变成进行编译,会报错:Loar_V1.1_20210205.production.hex does not exist or is not an executable, ②找到工程下的 nbproject 文件夹 ③将nbproject文件夹下的文件全部打开,并且将

qq_26195179的博客 1759

SiteMesh

一、SiteMesh项目简介       OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration) 的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。        Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的项目中创建一致的

it_man的专栏 6370

从一个过气考渣的角度看LLM智能化测试用例生成

根据业务需求生成测试用例,会涉及到相关上下文的召回、用例生成等场景。除了用例生成之外,也可以考虑应用LLM进行用例评审。因此,本文将涉及以下内容。

software_test010的博客 827

OpenClaw本地部署教程

本文详细介绍了在Windows 11系统上部署OpenClaw与Ollama本地模型的完整流程。主要内容包括:硬件要求说明、Node.js环境配置、Ollama模型安装与定制(重点扩展上下文窗口至32768 tokens)、OpenClaw核心框架安装与对接、常见问题解决(如模型上下文窗口过小报错)以及可选技能扩展和飞书接入方案。部署全程约需1-2小时,强调使用备用设备或虚拟机以确保安全,并提供关键配置参数和排错命令。该方案实现了"数据不出门、推理本地化"的私有化部署目标。

技术引领业务创新 2577

《Spring实战》读书笔记-第6章 渲染Web视图

当给resolveViewName()方法传入一个视图名和Locale对象时,它会返回一个View实例。View是另外一个接口,如下所示:> model,View接口的任务就是接受模型以及Servlet的request和response对象,并将输出结果渲染到response中。尽管我们可以编写ViewResolver和View的实现,在有些特定的场景下,这样做也是有必要的,但一般来讲,我们并不需要关心这些接口。Spring提供了多个内置的实现。

m0_61067876的博客 1093

VC Spyglass CDC实战:从TCL脚本到SDC约束的完整避坑指南

本文是一份针对数字IC验证工程师的VC Spyglass CDC实战指南。文章详细阐述了从TCL脚本环境搭建、SDC约束编写到典型CDC违规(如SETUP_PORT_UNCONSTRAINED)诊断与修复的完整流程,旨在帮助读者高效避坑,深入理解工具逻辑,从而完成可靠的时钟域交叉验证。

go5gopher的博客 382

tiles都是完整的html,Tiles3.x框架使用

Tiles,瓷砖,就像Windows8的磁贴一样,多个瓷砖构成了整个UI页面。它是一个免费开源的模板框架,基于组合模式来简化UI界面的开发。对于复杂的网站来说,它可以简单优雅地结合MVC技术一起工作。配置:1.引入相应的依赖文件在Maven中添加完整依赖:org.apache.tilestiles-extras${tiles.version}如果是Struts,由于其集成了Tiles可以直接启用。...

weixin_34450111的博客 362

ICV:Metal Fill Insertion流程

如果不想删除先前加的metal fill,可以使用signoff_create_metal_fill -mode add命令,当使用这个mode后,工具不会fix density问题,哪怕设置了signoff.create_metal_fill.fix_density_errors,设置这个mode后可以使用以下option控制metal fill 的插入。默认情况下,signoff_create_metal_fill是会删掉已经加进去的metal/via fill再重新加的。

m0_61544122的博客 1133

ABAP BDC 处理踩坑笔记:把错误挡在录制之前,把稳定做进每一行 BDCDATA

本文总结了SAP BDC(批输入)开发中的常见问题和解决方案。重点包括:1)理解BDCDATA本质是模拟人工操作而非直接操作数据库;2)数据格式化技巧,如金额、日期、物料号等字段的标准化处理;3)通过CTU_PARAMS参数控制执行环境,确保屏幕尺寸和更新模式一致;4)不要依赖sy-subrc,应通过解析MESSTAB消息判断业务是否成功;5)录制阶段的常见陷阱及解决方法;6)疑难问题的系统性解决思路;7)建议建立完善的错误处理机制,包括日志记录和重跑功能。文章提供了实用的ABAP代码示例和配置建议,帮助开

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 265

tiles配置及标签使用

创建布局文件 Jsp代码   "http://tiles.apache.org/tags-tiles" prefix="tiles"%>                        "title" />                            "0" width="100%" cellspacing="5">

tangyuewei.com 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Tiles3.x框架使用

官网:http://tiles.apache.org/ Tiles,瓷砖,就像Windows8+的磁贴一样,多个瓷砖构成了整个UI页面。它是一个免费开源的模板框架,基于组合模式来简化UI界面的开发。对于复杂的网站来说,它可以简单优雅地结合MVC技术一起工作。 配置: ①引入相应的依赖文件

商明超的专栏 3689

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

spring mvc4集成tiles3

1.给项目添加tiles依赖 <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-core</artifactId> <version>3.0.7</version> </dependency> <de

黄天赐的博客 1961

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 多组radiobox提交时后台的获取的情况及处理
下一篇: SpringMVC4整合Hibernate3
johnsearcher
博客等级 码龄17年 12粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值