在片段之间传递变量 Thymeleaf

Bru*_*ndo 3 spring-mvc thymeleaf

我的结构

WEB-INF
??? thymeleaf
    ??? fragments
    ?   ??? head.html
    ??? index
    ?   ??? index.html
    ??? layout.html
Run Code Online (Sandbox Code Playgroud)

layout.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:insert="~{fragments/head :: head}" th:remove="tag"></head>
<body>
    <!--${view} == "index/index"-->
    <div th:insert="~{${view} :: content}" th:remove="tag"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

index.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title id="pageTitle">My Title with ID</title>
</head>
<body>
<div th:fragment="title">My Title With fragment</div>
<div th:fragment="content">
    My page
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

head.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="head" th:remove="tag">
    <meta charset="utf-8">
    <title>??????</title>
    <link href="/css/bootstrap.css" rel="stylesheet">
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我是Spring和 的新手Thymeleaf。我正在尝试构建一个简单的 CRUD,但遇到以下情况:

我想要的是:index.html设置一个title变量并head.html fragment检索这个title变量并打印它。

我能做什么?

var*_*ren 10

我认为您正在寻找8.3 灵活的布局文档很棒且易于遵循,但这里也是仅插入标题字符串的简单案例

布局/layout.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" th:fragment="page(title)">
    <head th:replace="fragments/head :: common_header(title=${title})"></head>
    <body>
        <div th:replace="this :: content"></div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

片段/head.html

<!DOCTYPE html>
<html  xmlns:th="http://www.thymeleaf.org">
    <head th:fragment="common_header(title)">
        <title th:text="${title}">The awesome application</title>
    </head>
    <body></body>
</html>
Run Code Online (Sandbox Code Playgroud)

index.htmlindexTitle来自控制器,或者你可以把字符串放在那里)

<html xmlns:th="http://www.thymeleaf.org"
      th:include="layouts/layout :: page(title=${indexTitle})">
    <head></head>
    <body>
        <section th:fragment="content">
           <div class="block">Part of index.html</div>
        </section>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这里也是我的一个项目中的简化github 演示,你可以玩