SpringMVC整合Tiles框架

Tiles組件html

 

tiles-iconfig.xmljava

Tiles是一個JSP佈局框架。web

Tiles框架爲建立Web頁面提供了一種模板機制,它能將網頁的佈局和內容分離。它用模板定義網頁佈局,每一個頁面模板都是一個簡單的 JSP 頁,它定義了一些由佔位符組成的外形,以放置內容。執行時,Tiles 將會用相應的內容來替換佔位符,所以,建立整個頁面即造成佈局。Tiles框架是創建在JSPinclude指令基礎上的,但它提供了比JSPinclude指令更強大的功能。Tiles框架具備以下特性:spring

1.         建立可重用的模板apache

2.         動態構建和裝載頁面mvc

3.         定義可重用的Tiles組件框架

4.         支持國際化。jsp

接下來就介紹Tiles框架的基本使用。ide


 <tiles-definitions>標籤內主要的子節點就是<definition>標籤,這個標籤屬性以下:
佈局

屬性

 

 

 

 

名稱

是否必須

值必須

值類型

說明

name

true

true

java.lang.String

指定將要建立的一個definition bean的訪問名稱。這個必須有的。

template

false

true

java.lang.String

哪個文件是模板文件,這個模板文件後面會介紹。

role

false

true

java.lang.String

若是配置了這個值的話,須要role的值相等,這個definition才被有效訪問,這個功能我沒有深究,也不推薦使用,建議你們創建本身更完善的權限控制管理。固然歡迎朋友們完善role應用的示例,tiles自帶role的示例,有興趣的人去讀一下就明白了。

extends

false

true

java.lang.String

繼承哪個definition,值是你要繼承的definitionname的值。高使用率的屬性。

preparer

false

true

java.lang.String

呵,我沒使用,若是你要使用的話,要寫一個實現他的Prepare接口的類,做用就是在展示你定義的頁面前會先執行你的prepare


應用程序佈局

咱們的目標是咱們Spring3HelloWorld應用程序添加頁眉,頁腳和菜單。如下將是相同的佈局。


所需JAR



上述表中突出顯示的jar文件要添加新的Tiles集成項目。

Spring mvc 中配置Tiles框架

要配置Tiles,在spring-servlet.xml中配置一個TilesConfig<bean>。打開spring-servlet.xml,並添加下面的代碼<beans></beans>標記之間。

WEB-INF/spring-servlet.xml:
1 <bean id="viewResolver" 
2     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
3     <property name="viewClass"> 
4         <value> 
5             org.springframework.web.servlet.view.tiles2.TilesView 
6         </value> 
7     </property> 
8 </bean> 
9 <bean id="tilesConfigurer" 
10     class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
11     <property name="definitions"> 
12         <list> 
13             <value>/WEB-INF/tiles.xml</value> 
14         </list> 
15     </property> 
16 </bean>

經過上面定義的參數.WEB-INF中寫一個tiles的配置文件"tiles.xml"這個xml爲咱們的web項目定義Tiles


WEB-INF/tiles.xml:

 

1 <?xml version="1.0" encoding="UTF-8" ?> 
2 <!DOCTYPE tiles-definitions PUBLIC 
3        "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" 
4        "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> 
5 <tiles-definitions> 
6     <definition name="base.definition" 
7         template="/WEB-INF/jsp/layout.jsp"> 
8         <put-attribute name="title" value="" /> 
9         <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" /> 
10         <put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" /> 
11         <put-attribute name="body" value="" /> 
12         <put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" /> 
13     </definition> 
14   
15     <definition name="contact" extends="base.definition"> 
16         <put-attribute name="title" value="Contact Manager" /> 
17         <put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" /> 
18     </definition> 
19   
20 </tiles-definitions>


 

在這裏,咱們有tiles.xml定義模板base.definition。該佈局包含的屬性,如頭,標題,主體,菜單和頁腳。而後擴展和佈局的新關聯頁面。咱們覆蓋默認的佈局改變Body和Title的內容。

建立咱們的JSP文件


咱們寫一個layout.jsp做爲咱們web項目的佈局頁面而後引入相應的頁面

WEB-INF/jsp/layout.jsp
1 <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> 
2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
3 "http://www.w3.org/TR/html4/loose.dtd"> 
4 <html> 
5 <head> 
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
7 <title><tiles:insertAttribute name="title" ignore="true" /></title> 
8 </head> 
9 <body> 
10 <table border="1" cellpadding="2" cellspacing="2" align="center"> 
11     <tr> 
12         <td height="30" colspan="2"><tiles:insertAttribute name="header" /> 
13         </td> 
14     </tr> 
15     <tr> 
16         <td height="250"><tiles:insertAttribute name="menu" /></td> 
17         <td width="350"><tiles:insertAttribute name="body" /></td> 
18     </tr> 
19     <tr> 
20         <td height="30" colspan="2"><tiles:insertAttribute name="footer" /> 
21         </td> 
22     </tr> 
23 </table> 
24 </body> 
25 </html> 
 
WEB-INF/jsp/header.jsp
26 <h1>Header</h1> 
WEB-INF/jsp/menu.jsp
27 <span style="font-size: 14px;"><p>Menu</p></span> 
WEB-INF/jsp/footer.jsp
<span style="font-size: 14px;"><p>Copyright <code class="xml plain">©</code>Zemo.com</p></span>
全部工做準備就緒部署就好了






相關文章
相關標籤/搜索