Thymeleaf:在default.html

时间:2017-05-31 15:00:29

标签: java html spring-mvc thymeleaf

以前我只使用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的页脚区域,但它没有。

enter image description here

1 个答案:

答案 0 :(得分:0)

找到解决方案:我应该使用 'footer id =“footer”layout:include =“footerTemplate”' 代替 'footer id =“footer”layout:fragment =“footerTemplate”'

顺便说一句,thymeleaf's website上列出的示例从未起作用,但没有正确的决定。