佈局引擎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:被插入的元素名稱,必須在定義文件中被聲明過
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章