大家好,我是IT修真院上海分院第3期学员,一枚正直善良的java程序员,今天给大家分享一下,修真院java任务中的一个知识点:Tiles框架使用。
首先Tiles框架主要是为了创建可重用的组件。怎么理解呢,这里的组件指的是jsp代码,很多时候比如3个jsp文件中会出现相同的header或body或footer,那么这就造成了代码重复,而通过Tile框架可将3个页面中相同的header和footer分离出来放到一个jsp中作为组件以达到重用的目的。
下面贴代码解说,我有2个jsp,这两个页面中的header(首部)和footer(底部)都是一致的如下图:
修真院官网绝大多数页面的首部和底部都和上图中的一致,如果每个页面都把首部和底部写一遍会造成大量的 重复代码,因此比较好的做法是使用Tiles框架将可重用的部分分离出来形成一个组件。
下面是分离的首部和底部代码:
footer.jsp,该jsp文件中是2个页面共有的底部分离出来的代码:
header.jsp,该jsp文件同样是2个页面共有的首部分离出来的代码:
至此,已将两个页面中共有的部分分离出来了,分离出来以后肯定是要进行重组形成一个新的页面的。首部和底部有了,那么还缺一个body部分,而body部分两个页面是不同的,因此需各自定义<body>的jsp文件。
两个页面分别是首页和职业介绍页面,两个页面中的首部和底部都相同如上所述。home.jsp是首页的<body>部分,IntroductionJob.jsp是职业介绍页面的<body>部分。
上面已经讲解了如何进行分离,下面讲讲如何进行重组形成一个新的jsp页面。
maven配置依赖:
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-extras</artifactId>
<version>3.0.7</version>
</dependency>
<dependency>
<groudId>org.apache.tiles</groudId>
<artifactId>tiles-servlet</artifactId>
<version>3.0.7</version>
</dependency>
<dependency>
<groudId>org.apache.tiles</groudId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.7</version>
</dependency>
在SpringMvc配置文件中配置Tiles视图解析器,视图解析器是为了解析controller返回的值来匹配路径来找到对应的jsp的。
tiles配置文件tiles.xml(可随意),放置在WEB-INF目录下
上图中的name为templet的是基础模板,并给这个模板填充了header和footer。然后name为*.page的从templet继承,同样拥有了header和footer,并添加了body部分,最终形成了一个拥有header,body,footer的jsp页面。其中values="/jsp/{1}.jsp/中的{1}是获取*匹配的内容,因为我的controller处理完毕返回了一个home.jsp,因此Tiles框架视图解析器起作用找到该Tiles的定义并重组页面形成新的jsp并将model交给该jsp处理,该jsp渲染视图完毕后返回。
下图是基础模板:
在tiles配置中给基础模板填充了footer和header会自动将footer.jsp和header.jsp中的内容拼接到该模板中,然后*.page从模板继承又是另一个jsp,并填充了body部分就形成了一个填充了header,footer,body的新页面。
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~我的邀请码:16318412,或者你可以直接点击此链接:http://www.jnshu.com/login/1/16318412