大型的web站點通常需要一套公共的外觀(Look and Feel(L&F)).如果這樣一套外觀是用代碼方式寫死在頁面中的話,變動外觀就是一場夢魘:你必須修改幾乎所有的頁面。在一個好的設(shè)計中,我們應(yīng)該分離外觀和頁面內(nèi)容。使用模板可以定義主要的外觀:設(shè)置頁頭,菜單,內(nèi)容,頁腳。頁面內(nèi)容定義在一個jsp頁面,不和外觀打攪!通過傳遞頁頭,菜單,內(nèi)容,頁腳給模板,由其生成最終頁面,響應(yīng)頁面請求!頁頭,菜單,頁腳可能所有頁面都是相同的。另外使用樣式表來保證一致的顏色,格式。
web開發(fā)的 另外一個方面是經(jīng)常重復(fù)做同樣的事情:web站點包括許多公共部分:菜單,表單,購物車,等等。。。每次我們必須重寫或拷貝粘貼同樣的代碼。但是當(dāng)你發(fā)現(xiàn)一個bug或想修改代碼時會發(fā)生什么呢?你必須修改所有的拷貝粘貼部分!一個解決方案就是重用組件。你總是插入同樣的組件帶不同的數(shù)據(jù)。現(xiàn)在,如果你修改組件,這個修改將應(yīng)用到所有你使用組件的地方。
Titles允許包含模板和組件。實際上所有的機制都是相似的:你定義頁面的所有部分(一個Title)。每個部分可帶參數(shù),允許動態(tài)內(nèi)容,能夠作為一個方法在java代碼中使用。
注意:這章的所有例子都是基于Tiles.war中/examples目錄下的新例子。