SpringMVC集成Tiles2

介紹Tiles2

如今,網站一般被劃分成片正在呈現不同的網頁之間的可重複使用的模板。例如,一個網站中包含頭,頁腳,菜單等,這項目仍然通過了該網站,並給它一個共同的外觀和感覺。這是非常困難的硬編碼在每一個網頁,如果以後需要改變,不是所有的頁面需要進行修改。因此,我們使用模板化機制。我們創建了一個共同的頁眉,頁腳,菜單頁面,包括在每個頁面。

瓷磚插件允許模板和組件。事實上,這兩種機制是相似的:
定義組裝興建另一部分或一整頁頁(Tiles)。的一部分
帶參數,允許動態的內容,並且可以被看作是一種方法,用JAVA語言。Tiles是保持一致的外觀和感覺一個web應用程序在所有的網頁模板系統使用。它增加模板的可重用性,減少代碼重複。

中央配置文件中定義一個常見的​​網頁佈局,這種佈局可以擴展到所有的Web應用程序的網頁。

應用程序佈局

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

http://img.viralpatel.net/2009/12/struts2-tiles-layout.gif

所需JAR包

spring-3-tiles-framework-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> 
  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

tiles-xml-spring-mvc

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> 
  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文件

spring-tiles-jsp-files

我們寫一個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> 
  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

  1. <h1>Header</h1> 
  1. <h1>Header</h1>  

WEB-INF/jsp/menu.jsp

  1. <span style="font-size: 14px;"><p>Menu</p></span> 
  1. <span style="font-size:14px;"><p>Menu</p></span>  
WEB-INF/jsp/footer.jsp
  1. <span style="font-size: 14px;"><p>Copyright <code class="xml plain">&copy;</code> Zemo.com</p></span> 
  1. <span style="font-size:14px;"><p>Copyright <code class="xml plain">&copy;</code> Zemo.com</p></span>  
所有工作準備就緒部署就行了

spring-tiles-demo-screen-contact-manager

發佈了52 篇原創文章 · 獲贊 17 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章