2015-06-17 29 views
0

我打算在我的SpringMVC應用程序中使用Apache瓷磚。 父模板具有動態標題和左側欄。這些內容也需要來自數據庫的模型數據。所以,每個請求都需要準備這些數據,例如用戶菜單。如何在使用SpringMVC和瓷磚時爲父模板準備數據

我不認爲這些數據準備應該放入每個SpringMVC控制器的方法中。

那麼,有沒有什麼好的做法呢?

+0

沒有人用這種方式使用瓷磚? – user1650915

回答

0

我已經創建了一個全局默認瓷磚定義cssjs文件。 yourpage.jsp擴展了這個定義,兩個文件添加到它:yourpage.jsyourpage.css

tiles.xml

<tiles-definitions> 
    <definition name="app.base" template="/path/to/your/layout.jsp"> 
     <put-attribute name="title" value="Not Found" /> 
     <put-attribute name="header" value="/path/to/your/header.jsp" /> 
     <put-attribute name="body" value="/path/to/your/sidebar.jsp" /> 
     <put-attribute name="footer" value="/path/to/your/body.jsp" /> 
     <put-list-attribute name="stylesheets"> 
      <add-attribute value="/static/resources/css/bootstrap.min.css" />   
      <add-attribute value="/static/resources/css/global.css" /> 
     </put-list-attribute> 
     <put-list-attribute name="javascripts"> 
      <add-attribute value="/static/resources/js/jquery-2.1.4.min.js" /> 
      <add-attribute value="/static/resources/js/global.js" /> 
     </put-list-attribute> 
    </definition> 
    <definition name="yourpage" extends="app.base"> 
     <put-attribute name="title" value="Your Page" /> 
     <put-attribute name="body" value="/path/to/your/yourpage.jsp" /> 
     <put-list-attribute name="stylesheets" inherit="true"> 
      <add-attribute value="/static/resources/css/yourpage.css" /> 
     </put-list-attribute> 
     <put-list-attribute name="javascripts" inherit="true"> 
      <add-attribute value="/static/resources/js/yourpage.js" /> 
     </put-list-attribute> 
    </definition> 
</tiles-definitions> 

tiles.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> 
<tiles:importAttribute name="stylesheets"/> 
<tiles:importAttribute name="javascripts"/> 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title> 
     <tiles:insertAttribute name="title"> 
     </tiles:insertAttribute> 
    </title> 

    <!-- stylesheets--> 
    <c:forEach var="css" items="${stylesheets}"> 
     <link rel="stylesheet" type="text/css" href="<c:url value="${css}"/>"> 
    </c:forEach> 
</head> 

<body> 
    <header> 
     <tiles:insertAttribute name="header" /> 
    </header> 
    <div class="sidebar"> 
     <tiles:insertAttribute name="sidebar" /> 
    </div> 
    <div class="body"> 
     <tiles:insertAttribute name="body" /> 
    </div> 

    <!-- scripts--> 
    <c:forEach var="script" items="${javascripts}"> 
     <script src="<c:url value="${script}"/>"></script> 
    </c:forEach> 
</body> 
</html> 

希望這可能是幫助