tiles框架

小课堂

分享人:蒋新益

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

如果您发现自己在每个页面上都要编写三行相同的 JSP 代码,或者你想容易地定义复杂的模版布局,那么相信学习Tiles框架会对你有帮助

2.知识剖析

tiles是什么

复合视图模式

所有的网站都有一些共同点:它们由共享类似结构的页面组成。页面共享相同的布局,而每个页面由不同的独立部分组成,但始终放置在整个站点的相同位置。

Tiles 是复合视图模式(Composite View pattern)的一个实现。Tiles将该模式添加到自己的概念中是该模式具体化。Tiles的实现是以复合式模式为理论, 概念包括:Template,Attribute和Definition。视图助手模式的实现是View Preparer 概念。

模板:Template

在Tiles中,模板(Template)是一个页面的布局部分。你能将一个页面结构看成是由不同的需要填补空白组成。

注意:一个模板(Template)可以没有属性(attributes),这种情况下该模板可以直接使用。有属性的话就要先定义属性才能使用,不然的话就会在解析jsp页面的时候报错

属性:Attribute

属性是模板中的空白,它在你的应用程序中被填充到模板中。

属性又分为三种

string:属性是string的话,会将string直接呈现在页面。

template:属性是一个模板(Template),有无属性都行。如果有属性的话,你也要将他们填充后再呈现页面。

definition:它是一个可重复使用组成的页面,包含所有的属性来填充以呈现页面。

定义:definition

定义是呈现给最终用户的组合物;本质上,一个定义是由一个模板和完全或部分填充的属性组成的。说白了就是:一个定义是由一个模板和属性组成的。

3.常见问题

include也可以实现多个jsp共用一个jsp的内容,为什么要使用tiles呢?

4.解决方案

刚接触web开发的人或许知道jsp可以通过include标签动态插入一个jsp页面,这样可以实现多个jsp页面共用一个jsp的内容.但是如果有一个超级大网站,jsp页面以万计呢?

Tiles就是为你遇到的这种需求服务的

5.编码实战

6.扩展思考

关于视图解析器的优先级

在Spring MVC应用程序中,我们经常需要应用一些视图解析器策略来解析视图名称。如果返回了一个视图的名称,那么,使用哪一个视图解析器策略?

如果应用了多个视图解析器策略,那么就必须通过“order”属性来声明优先级,order值越低,则优先级越高

7.参考文献

参考一:Apache Tiles的基本使用

参考二:分分钟知道tiles框架是干嘛的

参考三:SpringMVC视图解析器:配置多个视图解析器的优先级

8.更多讨论

欢迎大家交流和讨论

鸣谢

感谢大家观看

BY : 蒋新益