【修真院java 小课堂】TILES有什么用处,为什么要用TILES,如果不使用TILES,可以实现公共部分的复用吗?
大家好,我是IT修真院深圳分院第16期的学员廖志鹏,一枚正直纯洁善良的java后端程序员,今天给大家分享一下,修真院官网java任务四,深度思考中的知识点
1.背景介绍
什么是TILES?
Tiles 是一种JSP布局框架,主要目的是为了将复杂的jsp页面作为一个的页面的部分机能, 然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。
2.知识剖析
TILES有什么用?
所有的网站都有一些共通的东西:所有的网站都是有网页构成,而且它们彼此分享着共通的结构。这些页面有着共通的布但是页面和页面之间又有不同的地方,而且不同的地方通常都在同样的位置
TILES怎么用?
1、引入tiles相关的jar包
2、mvc配置文件添加tiles的视图解析器和配置器(指向布局文件)
3、配置布局文件以定义布局
4、配置模板页
3.常见问题
为什么要用TILES?
以修真院官网为例子,很多地方都是头部和底部不变的,改变的只是中间的body部分;
虽然现在的官网的页面不是用的tiles实现的,但是可以用tiles实现这样的效果
那么为什么要用tiles呢?可以反过来思考,我用tiles这样做有什么益处:
举个例子,如果我想在头部加一个现实当前时间的状态,但是官网有这么多页面,
难道我要写这样一行代码,然后每一个页面都粘贴一次吗,这未免太麻烦
用了tiles之后,只需要在头部添加这样一段代码以实现显示当前时间就行了,而且是每一个页面都实现,因为头部是复用的
4.编码实战
<!-- 布局-->
<definition name="defaultTemplate" template="/WEB-INF/views/layout/defaultLayout.jsp">
<put-attribute name="tittle" value="/WEB-INF/views/layout/title.jsp" />
<put-attribute name="top" value="/WEB-INF/views/layout/top.jsp" />
<put-attribute name="head" value="/WEB-INF/views/layout/head.jsp"/>
<put-attribute name="menu" value="/WEB-INF/views/layout/menu.jsp"/>
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/views/layout/footer.jsp"/>
</definition>
模板页
<html>
<head>
<title>
<tiles:insertAttribute name="tittle"/>
</title>
</head>
<body>
<tiles:insertAttribute name="top"/>
<tiles:insertAttribute name="head"/>
<tiles:insertAttribute name="menu"/>
<tiles:insertAttribute name="body"/>
<tiles:insertAttribute name="footer"/>
</body>
</html>
5.扩展思考
如果不使用TILES,可以实现公共部分的复用吗?
可以的,还有其它的页面布局工具
SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。
JSP Layout 是一个用来实现 JSP 布局支持的简单示例项目。该项目只需要一个 Servlet 类,一些配置即可
比较:前两者都必须使用预先配置好的布局,使用XML文件来定义布局,真正的数据显示页面无法灵活控制所需的布局; 而 JSP Layout 是一个超轻量级的布局控制,要使用哪个布局文件,由目标页面通过代码进行控制
6.参考文献
https://www.cnblogs.com/handsome1013/p/6140720.html
https://blog.csdn.net/u012492220/article/details/17075379
7.更多讨论
问:1、如何定义页面的活动部分和公共部分?
答:在页面布局的布局文件中配置,先配置好全局布局,然后再定义单个页面的
问:2、如何将页面拼成我想要的样子?
答:在模板页定义好各个部位的存放位置,以定义整个页面的布局
问:3、如何快速上手tiles
答:先跑一个demo先,把其作用弄清楚,如何再尝试自己做修改
8.结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
[散修弟子]JAVA-7190 发表于 2019-11-16 17:48:23 #1
符合格式,通过
回复