以前我只使用JSP和Apache Tiles,现在我第一次尝试创建Thymeleaf模板。我遇到的问题是我不知道如何将自定义页眉,页脚和其他部分插入default.html。这是代码示例。
default.html中:
<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="UTF-8"/>
<title>Default template</title>
<link rel="stylesheet" type="text/css" href="../static/css/app.css" th:href="@{/css/app.css}"/>
<link rel="stylesheet" type="text/css" href="../static/css/bootstrap.css" th:href="@{/css/bootstrap.css}"/>
<link rel="stylesheet" type="text/css" href="../static/css/myCss.css" th:href="@{/css/myCss.css}"/>
</head>
<body>
<header id="header" layout:fragment="header">
HEADER
</header>
<section id="sidemenu" layout:fragment="sideMenu">
SIDE_MENU
</section>
<section id="site-content" layout:fragment="siteContent"></section>
<footer id="footer" layout:fragment="footerTemplate"></footer>
</body>
</html>
在default.html中我有'siteContent',用于插入所有应用程序的html文件,'header','sideMenu'和'footer'部分必须在单独的相应html文件(模板)中实现,插入default.html。
的index.html:
<!DOCTYPE html>
<html lang="en"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="default">
<head>
<title>Index</title>
</head>
<body>
<div layout:fragment="siteContent">
<h1>Hello world!</h1>
</div>
</body>
</html>
footer.html:
<!DOCTYPE html>
<html lang="en"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{default}">
<head>
<title>Footer Template</title>
</head>
<body>
<div layout:fragment="footer">
Copyright © 2017
</div>
</body>
</html>
这是页脚的一个例子。
SiteContent区域正常运行。页脚的“版权所有©2017”应该导入default.html的页脚区域,但它没有。
答案 0 :(得分:0)
找到解决方案:我应该使用 'footer id =“footer”layout:include =“footerTemplate”' 代替 'footer id =“footer”layout:fragment =“footerTemplate”'
顺便说一句,thymeleaf's website上列出的示例从未起作用,但没有正确的决定。