標(biāo)簽: java jsp
1. 基本概念
Tiles是符合視圖模式(Composite View Pattern)的一個實現(xiàn)。
主要包括模板(Temlate)抚太、屬性(Attribute)蛾洛、定義(Definition)。
1.1 模板:Template
Template是指頁面的一個布局,如下面的一個典型布局:
在JSP中實現(xiàn)這個布局:
注意:一個模板(Template)可以沒有屬性(Attribute)继榆,這種情況下改模板可以直接使用栈虚。有屬性的話就要先定義屬性才能使用袖外,否則就會在解析JSP頁面的時候報錯。
1.2 屬性:Attribute
Tiles主要有以下三個屬性:
- String:屬性為String時魂务,會將String的值直接呈現(xiàn)在頁面曼验。
- template:屬性是一個模板(Template),有無屬性都行粘姜。如果有屬性的話鬓照,也要將它們填充后再呈現(xiàn)頁面。
- definition:它是一個可重復(fù)使用組成的頁面孤紧,包含所有的屬性來填充以呈現(xiàn)頁面豺裆。
1.3 定義:Definition
定義是呈現(xiàn)給最終用戶的組合物。本質(zhì)上号显,一個定義是由一個模板和完全貨部分屬性組成的臭猜。說白了就是:一個定義是由模板和屬性組成的。
- 如果所有屬性都填充了押蚤,它將可以呈現(xiàn)給最終用戶蔑歌。
- 如果不是所有屬性都填充了,這個定義稱為抽象定義(abstract definition)揽碘,它將可以被用作父定義丐膝,讓其它定義繼承,失去的屬性能在運行時填充钾菊。
例如帅矗,你可以按上面的那個典型模板創(chuàng)建一個頁面,修改Tiles的配置文件煞烫,如下:
1.4 視圖助手:View Preparer
有時候一個定義在呈現(xiàn)之前需要預(yù)處理浑此。例如,顯示一個menu時滞详,menu的結(jié)構(gòu)必須被創(chuàng)建并且已經(jīng)保存在request范圍內(nèi)凛俱。
在呈現(xiàn)定義之前調(diào)用視圖助手實現(xiàn)預(yù)處理。
2. 一個實例
未完待續(xù)····