布局引擎Apache_Tiles

问题:如果大量的jsp页面具有相同的页面结构,例如页面的顶端都有一个页眉,低端都有一个页脚,左侧都有一个菜单栏,对于每个页面都要复制粘贴相同的一些代码.为了解决这个问题使用Tiles技术
Apache_Tiles:通过"生成一个模板,将内容主体嵌入模板中"的方案去除重复代码


配置:
在WebConfig中添加两个Bean:一定要去掉InternalResourceViewResolver不然Tiles无效
@Bean 
public TilesConfigurer tilesConfigurer() {
TilesConfigurer configurer = new TilesConfigurer();
//指定定义文件,**表示遍历所有子路径
configurer.setDefinitions(new String[] {"/WEB-INF/**/tiles.xml"});
//开启刷新功能
configurer.setCheckRefresh(true);
return configurer;
}
@Bean
public ViewResolver viewResolver() {
return new TilesViewResolver();
}




文件:
一.Tiles的定义文件:tiles.xml
几个重要的标签:
1.<tiles-definitions>:根标签
所有的定义标签都要写在这个标签体中

2.<definition>  :定义标签,定义布局
参数:
.name:布局名称,匹配逻辑视图名称
.template:定义模板布局的布局文件
.extends:指定当前布局所继承的布局

例:
定义模板布局:
<definition name="base" template="/WEB-INF/layout/page.jsp"> 

定义一个被嵌入内容的布局:
<definition name="demo" extends="base">
 
 
3.<put-attribute> :放在<definition>标签体中,在布局中填入放入元素,相当于对jsp文件的声明
参数:
.name:元素名称
.value:元素的路径

例:
声明一个jsp文件
<put-attribute name="body" value="/WEB-INF/views/demo.jsp" />



二.模板文件:一个.jsp文件,特殊在使用了"http://tiles.apache.org/tags-tiles"标签库,从而可以在本页面中插入其他页面(被插入的页面必须是在定义文件中使用<put-attribute>标签声明过元素)
重要标签:
<t:insertAttribute>
参数:
name:被插入的元素名称,必须在定义文件中被声明过
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值