大家好,我是IT修真院郑州分院第6期的学员李亚衡,一枚正直纯洁善良的JAVA程序员
今天给大家分享一下,修真院官网JAVA任务四,深度思考中的知识点——Tiles框架
1.背景介绍
什么是Tiles
Tiles 是一种JSP布局框架,主要目的是为了将复杂的jsp页面作为一个的页面的部分机能,
然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。
Tiles使得struts在页面的处理方面多了一种选择。并且更容易实现代码的重用。(百度百科)
Tiles起源
最早的Tiles是组装在Struts1.1里面的,主要目的是为了将复数的jsp页面作为一个的页面的部分机能,
然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。
现在Tiles已经作为一个Apache独立的开源项目维护着。
Tiles作用
Tiles允许作者定义页面片段,这些片段可以在运行时被组合成一个完整的页面。
这些片段或片可以被简单的包括在内,以便减少常见的页面元素的重复或者嵌入在其他的片中以开发一系列可重复使用的模板。
这些模板简化了整个应用程序中一致的外观和风格的开发。(Tiles官方文档)
2.知识剖析
Tiles用来作什么
所有的网站都有一些共通的东西:所有的网站都是有网页构成,而且它们彼此分享着共通的结构。这些页面有着共通的布局,但是页面和页面之间又有不同的地方,而且不同的地方通常都在同样的位置。
为了理解这种模式,我们来看一个例子。 下面这个图就是一个比较经典的网页结构。
假如Body块里有一个链接,通过它可以迁移到类似Page2这样的一个页面。就如下图描述的这样。
正如我们看到的, 这两个页面是不同的,但是不同的地方仅仅是Body这部分区域。于是我们想,有没有好的办法能够把共通的地方复用起来,让我们维护的页面尽可能的少。Tiles就是用来帮助我们解决这个问题的
如何使用tiles
依赖和配置文件
Spring-servlet.xml
拆分Jsp页面
3.常见问题
刚接触Java Web开发的人都知道,JSP中可以通过include标签动态插入一个JSP页面。在了解这个功能后可能会兴奋不已,因为这样可以实现多个JSP页面共用一个JSP的内容。
现在,假如有一个超级大的电子商务网站,网站拥有10万个JSP页面(悄悄告诉你,这仅仅是一个假设),并且每个JSP都引用了同一个JSP(我们称这个JSP页面为A吧)。现在你就是这个网站的开发人员,有一天老板跑到你面前说:“大量用户反馈页面A设计得太丑,严重影响用户体验,如果不在今天之内改进,他们就集体去竞争对手那里购物,所以你今天必须要让页面A从网站上消失,否则炒鱿鱼走人”,这个凶神恶霸的老板说完就甩手走出去了,你没有任何辩解的机会。这时,恐怕你不会觉得自己一人能够搞定,那怎么办?程序员都有很多好基友,找一百个基友来一起改,每人只需要改1000个页面。不然,只有垂头丧气地收拾好东西离职了。
那么,要是有一天老板又跑过来找你,让你为每个JSP页面的底部加一个跳舞的小黄人,又该怎么办呢?先找前端工程师设计好跳舞的小黄人,然后用include标签插入到10万个JSP页面。10万个啊,又得请一百个好基友帮忙了!要是老板后面又要在网站顶端加一只唱歌的小鸟、在网站右边加一个工具栏…估计你的好基友要用砖头来砸你了。
那有没有一种方法,可以不用请一百个好基友帮忙,就可以在十分钟之内完成老板交给你的任务?也许你会觉得这简直是胡说八道,在十分钟内改完10万个JSP页面就是一种疯狂的想法。也许这是对的,就是一个疯狂的想法,不清楚Tiles的设计者当初也是否受到过这种老板的虐待,所以才设计出了这样一个疯狂的产品——Tiles。
没错,Tiles就是为你遇到的这种需求服务的。一旦你在网站系统中使用了Tiles技术,若老板让你删除10万个页面所引用的一个JSP,如果你的速度快的话,你可以在10秒钟之内解决。那要想再让这10万个页面去引用一个JSP呢?也是一样的操作,非常简单。
4.解决方案
SSM中使用Tiles
5.编码实战
6.扩展思考
Tiles中使用正则表达式
7.参考文献
百度百科
Apache Tiles官方文档:http://tiles.apache.org/
http://blog.sina.com.cn/s/blog_a123d4d50101792d.html
http://www.tuicool.com/articles/ZbMn2a
8.更多讨论
Q:现在基本上都是前后端分离,那为什么还要用tiles?
A:后端使用tiles可以减小项目体量
Q:除了tiles,还有没有其他框架
A:thymleaf
更多信息请参考视频:
PPT链接:PPT
9.鸣谢
刘佳义,姚远。茹程远