Tiles框架

大家好,我是IT修真院鄭州分院第6期的學(xué)員李亞衡,一枚正直純潔善良的JAVA程序員

今天給大家分享一下,修真院官網(wǎng)JAVA任務(wù)四,深度思考中的知識(shí)點(diǎn)——Tiles框架


1.背景介紹

什么是Tiles

Tiles 是一種JSP布局框架,主要目的是為了將復(fù)雜的jsp頁(yè)面作為一個(gè)的頁(yè)面的部分機(jī)能,

然后用來(lái)組合成一個(gè)最終表示用頁(yè)面用的,這樣的話,便于對(duì)頁(yè)面的各個(gè)機(jī)能的變更及維護(hù)。

Tiles使得struts在頁(yè)面的處理方面多了一種選擇。并且更容易實(shí)現(xiàn)代碼的重用。(百度百科)

Tiles起源

最早的Tiles是組裝在Struts1.1里面的,主要目的是為了將復(fù)數(shù)的jsp頁(yè)面作為一個(gè)的頁(yè)面的部分機(jī)能,

然后用來(lái)組合成一個(gè)最終表示用頁(yè)面用的,這樣的話,便于對(duì)頁(yè)面的各個(gè)機(jī)能的變更及維護(hù)。

現(xiàn)在Tiles已經(jīng)作為一個(gè)Apache獨(dú)立的開源項(xiàng)目維護(hù)著。

Tiles作用

Tiles允許作者??定義頁(yè)面片段,這些片段可以在運(yùn)行時(shí)被組合成一個(gè)完整的頁(yè)面。

這些片段或片可以被簡(jiǎn)單的包括在內(nèi),以便減少常見的頁(yè)面元素的重復(fù)或者嵌入在其他的片中以開發(fā)一系列可重復(fù)使用的模板。

這些模板簡(jiǎn)化了整個(gè)應(yīng)用程序中一致的外觀和風(fēng)格的開發(fā)。(Tiles官方文檔)


2.知識(shí)剖析

Tiles用來(lái)作什么

所有的網(wǎng)站都有一些共通的東西:所有的網(wǎng)站都是有網(wǎng)頁(yè)構(gòu)成,而且它們彼此分享著共通的結(jié)構(gòu)。這些頁(yè)面有著共通的布局,但是頁(yè)面和頁(yè)面之間又有不同的地方,而且不同的地方通常都在同樣的位置。

為了理解這種模式,我們來(lái)看一個(gè)例子。 下面這個(gè)圖就是一個(gè)比較經(jīng)典的網(wǎng)頁(yè)結(jié)構(gòu)。


假如Body塊里有一個(gè)鏈接,通過(guò)它可以遷移到類似Page2這樣的一個(gè)頁(yè)面。就如下圖描述的這樣。

正如我們看到的, 這兩個(gè)頁(yè)面是不同的,但是不同的地方僅僅是Body這部分區(qū)域。于是我們想,有沒有好的辦法能夠把共通的地方復(fù)用起來(lái),讓我們維護(hù)的頁(yè)面盡可能的少。Tiles就是用來(lái)幫助我們解決這個(gè)問(wèn)題的

如何使用tiles

依賴和配置文件

Spring-servlet.xml

拆分Jsp頁(yè)面


3.常見問(wèn)題

剛接觸Java Web開發(fā)的人都知道,JSP中可以通過(guò)include標(biāo)簽動(dòng)態(tài)插入一個(gè)JSP頁(yè)面。在了解這個(gè)功能后可能會(huì)興奮不已,因?yàn)檫@樣可以實(shí)現(xiàn)多個(gè)JSP頁(yè)面共用一個(gè)JSP的內(nèi)容。

現(xiàn)在,假如有一個(gè)超級(jí)大的電子商務(wù)網(wǎng)站,網(wǎng)站擁有10萬(wàn)個(gè)JSP頁(yè)面(悄悄告訴你,這僅僅是一個(gè)假設(shè)),并且每個(gè)JSP都引用了同一個(gè)JSP(我們稱這個(gè)JSP頁(yè)面為A吧)?,F(xiàn)在你就是這個(gè)網(wǎng)站的開發(fā)人員,有一天老板跑到你面前說(shuō):“大量用戶反饋?lái)?yè)面A設(shè)計(jì)得太丑,嚴(yán)重影響用戶體驗(yàn),如果不在今天之內(nèi)改進(jìn),他們就集體去競(jìng)爭(zhēng)對(duì)手那里購(gòu)物,所以你今天必須要讓頁(yè)面A從網(wǎng)站上消失,否則炒魷魚走人”,這個(gè)兇神惡霸的老板說(shuō)完就甩手走出去了,你沒有任何辯解的機(jī)會(huì)。這時(shí),恐怕你不會(huì)覺得自己一人能夠搞定,那怎么辦?程序員都有很多好基友,找一百個(gè)基友來(lái)一起改,每人只需要改1000個(gè)頁(yè)面。不然,只有垂頭喪氣地收拾好東西離職了。

那么,要是有一天老板又跑過(guò)來(lái)找你,讓你為每個(gè)JSP頁(yè)面的底部加一個(gè)跳舞的小黃人,又該怎么辦呢?先找前端工程師設(shè)計(jì)好跳舞的小黃人,然后用include標(biāo)簽插入到10萬(wàn)個(gè)JSP頁(yè)面。10萬(wàn)個(gè)啊,又得請(qǐng)一百個(gè)好基友幫忙了!要是老板后面又要在網(wǎng)站頂端加一只唱歌的小鳥、在網(wǎng)站右邊加一個(gè)工具欄…估計(jì)你的好基友要用磚頭來(lái)砸你了。

那有沒有一種方法,可以不用請(qǐng)一百個(gè)好基友幫忙,就可以在十分鐘之內(nèi)完成老板交給你的任務(wù)?也許你會(huì)覺得這簡(jiǎn)直是胡說(shuō)八道,在十分鐘內(nèi)改完10萬(wàn)個(gè)JSP頁(yè)面就是一種瘋狂的想法。也許這是對(duì)的,就是一個(gè)瘋狂的想法,不清楚Tiles的設(shè)計(jì)者當(dāng)初也是否受到過(guò)這種老板的虐待,所以才設(shè)計(jì)出了這樣一個(gè)瘋狂的產(chǎn)品——Tiles

沒錯(cuò),Tiles就是為你遇到的這種需求服務(wù)的。一旦你在網(wǎng)站系統(tǒng)中使用了Tiles技術(shù),若老板讓你刪除10萬(wàn)個(gè)頁(yè)面所引用的一個(gè)JSP,如果你的速度快的話,你可以在10秒鐘之內(nèi)解決。那要想再讓這10萬(wàn)個(gè)頁(yè)面去引用一個(gè)JSP呢?也是一樣的操作,非常簡(jiǎn)單。


4.解決方案

SSM中使用Tiles


5.編碼實(shí)戰(zhàn)

6.擴(kuò)展思考

Tiles中使用正則表達(dá)式

7.參考文獻(xiàn)

百度百科

Apache Tiles官方文檔:http://tiles.apache.org/

http://blog.sina.com.cn/s/blog_a123d4d50101792d.html

http://www.tuicool.com/articles/ZbMn2a

8.更多討論

Q:現(xiàn)在基本上都是前后端分離,那為什么還要用tiles?

A:后端使用tiles可以減小項(xiàng)目體量

Q:除了tiles,還有沒有其他框架

A:thymleaf

更多信息請(qǐng)參考視頻:


Tiles框架_騰訊視頻


PPT鏈接:PPT

9.鳴謝

劉佳義,姚遠(yuǎn)。茹程遠(yuǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 大家好,我是IT修真院上海分院第02期學(xué)員,一枚正直善良的Java程序員。 今天給大家分享一下,修真院官網(wǎng)task...
    idiot丶偉偉閱讀 604評(píng)論 0 0
  • 大家好,我是IT修真院上海分院第3期學(xué)員,一枚正直善良的java程序員,今天給大家分享一下,修真院java任務(wù)中的...
    ba1d04276512閱讀 886評(píng)論 0 0
  • 大家好,我是IT修真院上海分院第02期學(xué)員,一枚正直善良的Java程序員。 今天給大家分享一下,修真院官網(wǎng)task...
    idiot丶偉偉閱讀 775評(píng)論 0 0
  • 背景介紹 實(shí)際項(xiàng)目中常常因?yàn)樾枨蟮淖儎?dòng)反復(fù)修改JSP頁(yè)面式樣,一個(gè)個(gè)頁(yè)面修改配置費(fèi)時(shí)費(fèi)力 知識(shí)剖析 所有的網(wǎng)站都有...
    DREAMER_e6de閱讀 410評(píng)論 0 0
  • 近些日子以來(lái),付費(fèi)群越來(lái)越多。應(yīng)該是從馬化騰的付費(fèi)訂閱消息爆出來(lái)以后,各種打卡群就猶如雨后春筍一樣盛行。 號(hào)稱簡(jiǎn)書...
    紅色的靴子閱讀 3,826評(píng)論 1 3

友情鏈接更多精彩內(nèi)容