0
我打算在我的SpringMVC應用程序中使用Apache瓷磚。 父模板具有動態標題和左側欄。這些內容也需要來自數據庫的模型數據。所以,每個請求都需要準備這些數據,例如用戶菜單。如何在使用SpringMVC和瓷磚時爲父模板準備數據
我不認爲這些數據準備應該放入每個SpringMVC控制器的方法中。
那麼,有沒有什麼好的做法呢?
我打算在我的SpringMVC應用程序中使用Apache瓷磚。 父模板具有動態標題和左側欄。這些內容也需要來自數據庫的模型數據。所以,每個請求都需要準備這些數據,例如用戶菜單。如何在使用SpringMVC和瓷磚時爲父模板準備數據
我不認爲這些數據準備應該放入每個SpringMVC控制器的方法中。
那麼,有沒有什麼好的做法呢?
我已經創建了一個全局默認瓷磚定義css
和js
文件。 yourpage.jsp
擴展了這個定義,兩個文件添加到它:yourpage.js
和yourpage.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>
希望這可能是幫助
沒有人用這種方式使用瓷磚? – user1650915