大家好,我是IT修真院鄭州分院第6期的學員李亞衡,一枚正直純潔善良的JAVA程序員
今天給大家分享一下,修真院官網JAVA任務四,深度思考中的知識點——Tiles框架
1.背景介紹
什么是Tiles
Tiles 是一種JSP布局框架,主要目的是為了將復雜的jsp頁面作為一個的頁面的部分機能,
然后用來組合成一個最終表示用頁面用的,這樣的話,便于對頁面的各個機能的變更及維護。
Tiles使得struts在頁面的處理方面多了一種選擇。并且更容易實現代碼的重用。(百度百科)
Tiles起源
最早的Tiles是組裝在Struts1.1里面的,主要目的是為了將復數的jsp頁面作為一個的頁面的部分機能,
然后用來組合成一個最終表示用頁面用的,這樣的話,便于對頁面的各個機能的變更及維護。
現在Tiles已經作為一個Apache獨立的開源項目維護著。
Tiles作用
Tiles允許作者??定義頁面片段,這些片段可以在運行時被組合成一個完整的頁面。
這些片段或片可以被簡單的包括在內,以便減少常見的頁面元素的重復或者嵌入在其他的片中以開發一系列可重復使用的模板。
這些模板簡化了整個應用程序中一致的外觀和風格的開發。(Tiles官方文檔)
2.知識剖析
Tiles用來作什么
所有的網站都有一些共通的東西:所有的網站都是有網頁構成,而且它們彼此分享著共通的結構。這些頁面有著共通的布局,但是頁面和頁面之間又有不同的地方,而且不同的地方通常都在同樣的位置。
為了理解這種模式,我們來看一個例子。 下面這個圖就是一個比較經典的網頁結構。
假如Body塊里有一個鏈接,通過它可以遷移到類似Page2這樣的一個頁面。就如下圖描述的這樣。
正如我們看到的, 這兩個頁面是不同的,但是不同的地方僅僅是Body這部分區域。于是我們想,有沒有好的辦法能夠把共通的地方復用起來,讓我們維護的頁面盡可能的少。Tiles就是用來幫助我們解決這個問題的
如何使用tiles
依賴和配置文件
Spring-servlet.xml
拆分Jsp頁面
3.常見問題
剛接觸Java Web開發的人都知道,JSP中可以通過include標簽動態插入一個JSP頁面。在了解這個功能后可能會興奮不已,因為這樣可以實現多個JSP頁面共用一個JSP的內容。
現在,假如有一個超級大的電子商務網站,網站擁有10萬個JSP頁面(悄悄告訴你,這僅僅是一個假設),并且每個JSP都引用了同一個JSP(我們稱這個JSP頁面為A吧)。現在你就是這個網站的開發人員,有一天老板跑到你面前說:“大量用戶反饋頁面A設計得太丑,嚴重影響用戶體驗,如果不在今天之內改進,他們就集體去競爭對手那里購物,所以你今天必須要讓頁面A從網站上消失,否則炒魷魚走人”,這個兇神惡霸的老板說完就甩手走出去了,你沒有任何辯解的機會。這時,恐怕你不會覺得自己一人能夠搞定,那怎么辦?程序員都有很多好基友,找一百個基友來一起改,每人只需要改1000個頁面。不然,只有垂頭喪氣地收拾好東西離職了。
那么,要是有一天老板又跑過來找你,讓你為每個JSP頁面的底部加一個跳舞的小黃人,又該怎么辦呢?先找前端工程師設計好跳舞的小黃人,然后用include標簽插入到10萬個JSP頁面。10萬個啊,又得請一百個好基友幫忙了!要是老板后面又要在網站頂端加一只唱歌的小鳥、在網站右邊加一個工具欄…估計你的好基友要用磚頭來砸你了。
那有沒有一種方法,可以不用請一百個好基友幫忙,就可以在十分鐘之內完成老板交給你的任務?也許你會覺得這簡直是胡說八道,在十分鐘內改完10萬個JSP頁面就是一種瘋狂的想法。也許這是對的,就是一個瘋狂的想法,不清楚Tiles的設計者當初也是否受到過這種老板的虐待,所以才設計出了這樣一個瘋狂的產品——Tiles。
沒錯,Tiles就是為你遇到的這種需求服務的。一旦你在網站系統中使用了Tiles技術,若老板讓你刪除10萬個頁面所引用的一個JSP,如果你的速度快的話,你可以在10秒鐘之內解決。那要想再讓這10萬個頁面去引用一個JSP呢?也是一樣的操作,非常簡單。
4.解決方案
SSM中使用Tiles
5.編碼實戰
6.擴展思考
Tiles中使用正則表達式
7.參考文獻
百度百科
Apache Tiles官方文檔:http://tiles.apache.org/
http://blog.sina.com.cn/s/blog_a123d4d50101792d.html
http://www.tuicool.com/articles/ZbMn2a
8.更多討論
Q:現在基本上都是前后端分離,那為什么還要用tiles?
A:后端使用tiles可以減小項目體量
Q:除了tiles,還有沒有其他框架
A:thymleaf
更多信息請參考視頻:
PPT鏈接:PPT
9.鳴謝
劉佳義,姚遠。茹程遠