tiles框架学习总结

我是IT修真院的散修学员,正在学习java任务四,下面是我对tiles框架的总结

三个概念

template

最终用于视图渲染的页面布局,他只是个模版,可以把固定不变的部分提前定义在其中,比如格式布局,以及颜色设置啥的。然后把可变的部分定义为attribute,后续通过在definition中根据个性化需求配置。

attribute

用来填充template ,可以是字符串, template (也就是jsp文件路径)以及definition。

definition

一个definition标签就代表一个tile,一个tile必须以一个template做根基,然后添加该template所需要的attribute。与template对比的话 , template重点在于确定该页面的整体布局结构。而使用definition ,以及definition的继承体系,重点在于实现jsp的复用。

tile的配置文件

在其中配置多个tile的定义,即多个definition标签,将来该配置文件被加载后就会获得多个相应的tile用来进行视图渲染。具体的语法不展开了。

需要引入tiles约束文件

这里使用的是dtd约束,需要在xml中添加

"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

这样才能使用标签及其子标签。

加载tile配置文件

如果不使用springmvc

仅仅需要在web.xml中配置一个监听器即可

如果使用springmvc框架

需要在springmvc容器的配置文件中注册一个TilesConfigurer类型的bean

使用tile

如果不使用springmvc

首先在要用来渲染的jsp文件中使用taglib指令引入tiles相关的标签库,就像引入jstl标签库那样。

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

然后就可以使用具体的tiles标签来引入定义好的tile ,具体使用有两种方式

传统方式就是直接通过tiles:insertDefinition标签来引入现成的tile

另一种方式就是可以运行时合成,即通过相应标签修改某definition的attribute ,或者重新定义新的definition ,具体不展开

如果使用springmvc

如果像上面方式使用tile ,那不需要多余的配置,跟上面使用方式一样

但是如果需要在controller中让某handler返回的逻辑视图名直接指向TilesConfigurer加载的tile ,用该tile做视图渲染,那就需要一个工具来为逻辑视图名匹配到t目标tile ,这个工具就是一个视图解析器

按照官方文档来说,目前已知有三种视图解析器都能完成此项任务,分别是TilesViewResolver , UrlBasedViewResolver和ResourceBundleViewResolver。三种解析器配置方式不同,一般常用的就是TilesViewResolver  ,他是专用于tiles视图解析的。

关键问题

现在在springmvc的配置文件中可能存在两个视图解析器

一个是用于tiles视图解析的TilesViewResolver

一个是用于jsp文件视图解析的InternalResourceViewResolver

现在从一个handler中返回一个逻辑视图名,  如果存在同名的jsp逻辑视图名和tile名,那如何区分?通过配置两个视图解析器的优先级(p:order="xxx"指定)   ,优先级高的视图解析器得到执行,最终的视图就是该解析器的解析结果。

其他高级功能

在官网有详细的介绍,参考http://tiles.apache.org/framework/tutorial/index.html

关于IT修真院

欢迎到IT修真院学习IT技术,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄一对一可见指导。快来与我一起学习吧http://www.jnshu.com,我真的获益良多!

还有,那啥,虽然跟修真院老大未曾谋面,但他既然把夸他很帅列在了修真任务中,而我一路学习下来感觉其他任务都非常靠谱,那这个任务的质量肯定也不差,所以老大很帅!

你可能感兴趣的:(tiles框架学习总结)