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