《Spring MVC之使用Apache Tiles》要點:
本文介紹了Spring MVC之使用Apache Tiles,希望對您有用。如果有疑問,可以聯(lián)系我們。
我計劃完成 50 到 100 篇有關(guān) Spring 的文章,這是第十八篇.如果您對Spring和編程感興趣,歡迎訂閱我的頭條號,也歡迎關(guān)注我的個人獨立IT博客:談?wù)処T,網(wǎng)址就是tantanit.com哦.
有時候,一些頁面會共用同樣的布局,比如相同的頭部菜單或者底部內(nèi)容,可以將重復(fù)的內(nèi)容抽取出來,寫在單獨的文件里,而每個頁面在適當(dāng)?shù)牡胤揭脒@些文件.但是即使這樣,也還是顯得繁瑣,而且一旦布局變化(比如頭部的菜單移動到側(cè)邊欄),每個文件也都要改.而使用Apache Tiles,可以將方便地重復(fù)使用布局模板,由于布局間可以繼承,對布局變化的處理也更加方便.
下面代碼是繼承自WebMvcConfigurerAdapter的WebConfig類,在其中定義了TilesConfigurer和TilesViewResolver的bean.
配置TilesConfigurer和TilesViewResolver
上述代碼中,配置TilesConfigurer,指定tiles定義文件,并指定了多個tiles定義文件.然后,定義視圖解析器為TilesViewResolver.
下面讓我們看一下/WEB-INF/layout/tiles.xml的內(nèi)容.
tiles定義
第一個definition中,定義了名稱為base的模板,模板內(nèi)容為page.jsp,并且指定了兩個屬性header和footer,內(nèi)容分別為header.jsp,footer.jsp,這兩個屬性可以在page.jsp中使用.
第二個definition,定義了名稱為home的頁面,這個頁面繼承了base模板,同時,指定名稱為body的屬性值為home.jsp,該屬性可以在page.jsp中使用.可以這樣理解,名稱為home的頁面的布局已經(jīng)在page.jsp中定義了,個性化的部分,只有body屬性的內(nèi)容.
第三個definition,定義了名稱為about的頁面,這個頁面也是繼承base模板,同時,指定名稱為body的屬性值為about.jsp.
這樣說起來有點抽象,但看完page.jsp的內(nèi)容就會比較清楚了.
page.jsp
page.jsp頁面中,作為模板頁面.定義了三個div,header,content和footer,其中,header的內(nèi)容由屬性header指定,footer的內(nèi)容由屬性footer指定,而這兩個屬性在名稱為base的模板定義中已經(jīng)分別指定為header.jsp和footer.jsp,屬于每個頁面共同的布局.而id為content的內(nèi)容由屬性body指定,這個屬性由具體的頁面決定,是每個頁面除布局外的具體內(nèi)容.
在頁面渲染時,比如要渲染home.jsp,除了home.jsp外,還會根據(jù)模板定義,加上相應(yīng)的布局,渲染完整的頁面.
下面貼出布局和具體頁面內(nèi)容,并展示最終效果.
header.jsp:
header.jsp
footer.jsp:
footer.jsp
home.jsp:
home.jsp
about.jsp:
about.jsp
首頁渲染效果如下:
關(guān)于頁面渲染效果如下:
樣式略丑,多包涵.
我已經(jīng)將代碼放在 https://github.com/4zd/spring-tiles 上,歡迎下載.
如果您喜歡這篇文章,可以收藏和分享給更多朋友哦,在此拜謝orz!收藏和分享后,在PC上看IT文章,觀感更好.您可以通過toutiao.com拜訪今日頭條,也可以直接拜訪我的獨立博客tantanit.com.這篇文章的地址是http://tantanit.com/spring-apache-tiles
《Spring MVC之使用Apache Tiles》是否對您有啟發(fā),歡迎查看更多與《Spring MVC之使用Apache Tiles》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/13480.html