為什么要使用Tiles框架

? ? ? ? 大家好比伏,我是IT修真院北京分院第31期的學(xué)員俭厚,一枚正直純潔善良的JAVA程序員瑟曲。今天給大家分享一下士鸥,修真院官網(wǎng)JAVA任務(wù)4的深度思考——為什么要使用Tiles框架.

1.背景介紹

TILES框架

Tiles是一種JSP布局框架闲孤,主要目的是為了將復(fù)雜的jsp頁面作為一個的頁面的部分機(jī)能,然后用來組合成一個最終表示用頁面用的烤礁,這樣的話讼积,便于對頁面的各個機(jī)能的變更及維護(hù)。Tiles使得struts在頁面的處理方面多了一種選擇脚仔。并且更容易實現(xiàn)代碼的重用勤众。

最早的Tiles是組裝在Struts1.1里面的(Struts-Tiles),后面發(fā)展為獨立的Tiles框架(Tiles 2+鲤脏,目前最新版本為3.0)们颜。

TILES頁面布局

Tiles增加了layout的概念,其實就是把一個頁面劃分為幾塊猎醇。通常的來說一個頁面大概可以劃分為如下幾塊:

head頁面頭部:存放一個運用的公共信息:logo等窥突,如果是網(wǎng)站可能是最上面的一塊。

menu頁面菜單:放置一個運用中需要使用的菜單硫嘶,或者在每一個頁面都使用的連接阻问。footer頁面尾部:如版權(quán)信息等。body頁面主題內(nèi)容:每個頁面相對獨立的內(nèi)容沦疾。

如果按上面的劃分那對每一個頁面我們只要寫body里面的內(nèi)容称近,其他的就可以共享重用第队。如果大多數(shù)頁面的布局基本相同我們甚至可以使用一個jsp文件根據(jù)不同的參數(shù)調(diào)用不同的body。

2.知識剖析

TILES框架

Tiles框架可以令我們組合可以復(fù)用的Tiles來搭建網(wǎng)頁刨秆。例如凳谦,下圖中的頁面就是通過組合一個header,?一個footer,?一個menu?和一個body搭建起來的。

每一個Tiles(header,?menu,?body,?...)都是一個JSP頁面坛善,它們也可以通過組合其他的Tiles來搭建晾蜘。

應(yīng)用Tiles就好比是應(yīng)用Java的方法:需要你定義Tiles(方法體),然后你才能夠在任何你需要的地方“調(diào)用”該方法體眠屎,并傳遞一些參數(shù)。在Tiles中肆饶,為了避免與request參數(shù)相混淆改衩,參數(shù) (parameters)被稱為屬性(attributes)。

Tiles的方法體(也可以說是內(nèi)容——譯者注)可以是一個簡單的JSP頁面驯镊,?或者是一個Struts的動作(action)葫督,或者任何一個指向現(xiàn)存的網(wǎng)頁資源的URI。

插入或者調(diào)用Tiles可以通過在JSP中的任何位置置入如下tag來完成:tiles:insert?...板惑。插入也可以通過下面的方法來完成:指定一個作為Struts?forward的路徑的自定義名橄镜;或者指定一個作為Struts?action的input,forward或者include屬性的自定義名冯乘。

Tiles的方法體是用來創(chuàng)建版面布局洽胶,可復(fù)用部分等的,而Tiles的插入操作是用來插入Tiles的.同一個Tiles可以在同一個站點甚至同一個頁面被重用多次。

Tiles的插入可以與一個在Tiles中稱作“definition”的邏輯名聯(lián)系起來裆馒。一個Tiles的definition包含一個邏輯名姊氓,一個主體頁面和一些屬性值。definition的聲明并不插入與其相關(guān)聯(lián)的Tiles方法體喷好,它只是讓Tiles與它的邏輯名關(guān)聯(lián)起來翔横。可以在任何能夠插入Tiles地方運用定義的邏輯名梗搅,這樣與其對應(yīng)的Tiles及其屬性就被插入進(jìn)來了禾唁。

Tiles的definition的定義可以在JSP頁面中進(jìn)行,也可以在一個或者多個中心控制文件中進(jìn)行无切。 Definition可以繼承于另外一個Tiles的definition荡短,重載一些屬性,添加一些新的屬性等等订雾。這就允許“父類”的definition定義一些通用的layout,?header,?menu,?footer.?所有其他繼承于該父類的 definition可以簡單地通過改變其definition來改變整個頁面肢预。

嵌套TILES

一個 tile 布局可以插入到另一個 tile 布局中,依此類推洼哎。實際上烫映,創(chuàng)建的 tile 布局如此之 小沼本,以至于它們本身并不是真正的模板。相反锭沟,它們是更類似于自定義標(biāo)簽的小型可視組件抽兆,而不是頁面模板。

TILES運行流程

當(dāng)Spring MVC的DispatchServlet收到來自瀏覽器的請求后族淮,分析出需要請求的控制器辫红,然后訪問解析出來的控制器StudentController的home方法,接著就開始解析視圖了祝辣。因為我們用的是Tiles的視圖解析器贴妻,激情飽滿的二級制代碼就訪問到了layout.xml (jnshu.xml),最后根據(jù)layout.xml的配置組裝成我們看到的頁面。

為什么要用Tiles框架

舉個通俗的例子,現(xiàn)在蝙斜,假如有一個超級大的電子商務(wù)網(wǎng)站名惩,網(wǎng)站擁有10萬個JSP頁面(悄悄告訴你,這僅僅是一個假設(shè))孕荠,并且每個JSP都引用了同一個JSP(我們稱這個JSP頁面為A吧)∶漯模現(xiàn)在你就是這個網(wǎng)站的開發(fā)人員,有一天老板跑到你面前說:“大量用戶反饋頁面A設(shè)計得太丑稚伍,嚴(yán)重影響用戶體驗弯予,所以你今天必須要讓頁面A從網(wǎng)站上消失,否則炒魷魚走人”个曙,這個兇神惡霸的老板說完就甩手走出去了锈嫩,你沒有任何辯解的機(jī)會。這時困檩,恐怕你不會覺得自己一人能夠搞定祠挫,那怎么辦?程序員都有很多好基友悼沿,找一百個基友來一起改等舔,每人只需要改1000個頁面。不然糟趾,只有垂頭喪氣地收拾好東西離職了慌植。

但是,要是有一天老板又跑過來找你义郑,讓你為每個JSP頁面的底部加一個跳舞的小黃人蝶柿,又該怎么辦呢?那有沒有一種方法非驮,可以不用請一百個好基友幫忙交汤,就可以在十分鐘之內(nèi)完成老板交給你的任務(wù)?沒錯,Tiles就是為你遇到的這種需求服務(wù)的芙扎。一旦你在網(wǎng)站系統(tǒng)中使用了Tiles技術(shù)星岗,若老板讓你刪除10萬個頁面所引用的一個JSP,如果你的速度快的話戒洼,你可以在10秒鐘之內(nèi)解決俏橘。那要想再讓這10萬個頁面去引用一個JSP呢?也是一樣的操作圈浇,非常簡單寥掐。

3.編碼實戰(zhàn)

4.常見問題

1,在使用Tile框架中要注意導(dǎo)入Tiles的jar包沖突問題.

5.參考文獻(xiàn)

https://blog.csdn.net/zaowei21/article/details/215077

https://blog.csdn.net/chj225500/article/details/7055526

http://mengyang.iteye.com/blog/1156733

6.更多討論


今天的分享就到這里啦,歡迎大家點贊磷蜀、轉(zhuǎn)發(fā)召耘、留言、拍磚~

????????技能樹.IT修真院

????????“我們相信人人都可以成為一個工程師蠕搜,現(xiàn)在開始怎茫,找個師兄,帶你入門妓灌,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷妹巯埽”虫埂。

????????這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線圃验,學(xué)習(xí)透明化掉伏,成長可見化,師兄1對1免費指導(dǎo)澳窑「ⅲ快來與我一起學(xué)習(xí)吧~

我的邀請碼:17742750,或者你可以直接點擊此鏈接:http://www.jnshu.com/login/1/17742750

來源:簡書

著作權(quán)歸作者所有摊聋。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)鸡捐,非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末麻裁,一起剝皮案震驚了整個濱河市箍镜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌煎源,老刑警劉巖色迂,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異手销,居然都是意外死亡歇僧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門锋拖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诈悍,“玉大人祸轮,你說我怎么就攤上這事⌒戳ィ” “怎么了倔撞?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長慕趴。 經(jīng)常有香客問我痪蝇,道長,這世上最難降的妖魔是什么冕房? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任躏啰,我火速辦了婚禮,結(jié)果婚禮上耙册,老公的妹妹穿的比我還像新娘给僵。我一直安慰自己,他們只是感情好详拙,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布帝际。 她就那樣靜靜地躺著,像睡著了一般饶辙。 火紅的嫁衣襯著肌膚如雪蹲诀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼碍侦。 笑死,一個胖子當(dāng)著我的面吹牛痕慢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涌矢,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼掖举,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蒿辙?” 一聲冷哼從身側(cè)響起拇泛,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎思灌,沒想到半個月后俺叭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡泰偿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年熄守,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡裕照,死狀恐怖攒发,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晋南,我是刑警寧澤惠猿,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站负间,受9級特大地震影響偶妖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜政溃,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一趾访、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧董虱,春花似錦扼鞋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淫半,卻和暖如春盘寡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撮慨。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留脆粥,地道東北人砌溺。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像变隔,于是被迫代替她去往敵國和親规伐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • PPT 簡介: 一般來說一個網(wǎng)站會有很多不同界面,這些界面之間有很多結(jié)構(gòu)都是一樣的肌厨,比如title培慌,footer一...
    yaoyuan17023閱讀 240評論 0 0
  • 大家好,我是IT修真院北京分院的學(xué)員柑爸,一枚正直善良的JAVA程序員吵护。 今天給大家分享一下,修真院官網(wǎng)任務(wù)中可能會使...
    brako7閱讀 177評論 0 0
  • 1.tiles框架是什么? 2.tiles框架知識剖析 3.如何在項目中配置Tiles框架 4.為什么要使用Til...
    LALH_08ca閱讀 350評論 0 0
  • 今天拐角偶遇初二班主任 我們有5年沒見了吧祥诽。看得出來她臉上的皺紋真的是多了瓮恭,和女兒手挽手在散步雄坪。開始跟她打招呼的時...
    文刀丫頭閱讀 242評論 0 0
  • ① 『你是“絕版正品”』 相信每個人都有過向別人介紹自己的經(jīng)驗颇玷,介紹的過程笨农,其實就是在推銷你自己。假如你說自己喜歡...
    肖詞尹閱讀 243評論 0 3