Thymeleaf无法显示带有装饰器的页面上的项目

时间:2019-07-04 08:52:10

标签: layout thymeleaf dialect

这是dashboard.html

<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="layout/layout">
</head>
<body>

<h2>
    qssq
</h2>

<th:block layout:fragment="content"
          th:include="layout/dashboard-content">

</th:block>

<h2>
    <label th:text="${messages}" class="error"></label>
</h2>
<tr th:each="message : ${messages}">
    <td th:text="${message}">Text ...</td>
</tr>
<h2>
    ssq
</h2>
</body>
</html>

我想看qssqssqmessages,但我看不到任何一个。

相反,我看到了"layout/dashboard-content"

中的项目

这是layout/dashboard-content.html

    <!DOCTYPE html>
<html lang="en">

<!-- Main content -->
<div class="main-content">
    <h1 class="page-title">Page Title</h1>
    <!-- Breadcrumb -->
    <ol class="breadcrumb breadcrumb-2">
        <li><a href="#"><i class="fa fa-home"></i>Home</a></li>
        <li><a href="#">Various Screens</a></li>
        <li class="active"><strong>Blank Page</strong></li>
    </ol>
    <div class="row">
        <div class="col-lg-12">
            <p>Page content goes here.</p>
        </div>
    </div>
    <br><br><br><br><br>

</div>



</html>

这是layout.html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head
        th:include="fragments/header :: head">
</head>

<body>


<div class="page-container">

    <th:block th:include="layout/left-nav"></th:block>


    <div class="main-container">

        <th:block th:include="layout/main-header"></th:block>


        <th:block layout:fragment="content"/>

    </div>


</div>


<th:block th:include="fragments/footer" :: foot></th:block>

</body>
</html>

这来自spring

 @GetMapping(value={"", "/", "/dashboard"})
    public ModelAndView root() {

        List<String> stringList = new ArrayList<>();
        stringList.add("xx");
        stringList.add("yy");

        ModelAndView modelAndView = new ModelAndView("dashboard");
        modelAndView.addObject("messages", stringList);
        return modelAndView;
    }

我想提及网页:

dashboard.html 是主页。它将具有来自 dashboard-content.html

的动态内容。

layout.html 是主要装饰器。它具有页脚 页眉(用于库)以及主页眉(用于顶部导航栏)和 fragment = content 用于动态内容(例如,对于仪表板,它是仪表板内容)。因此,任何HTML都可以使用此布局,而不仅仅是仪表板

但是对于仪表板,我需要将参数发送到仪表板内容。因此,从控制器转到仪表板。然后应该转到仪表盘内容,但我什至无法在仪表盘中显示它。我什至无法显示string中的任何dashboard.html。喜欢:

    <h2>
    ssq
</h2>

出什么问题了?

如果我添加此

<th:block layout:fragment="content"
      th:include="layout/dashboard-content"
      th:with="messages=${messages}">

dashboard.html

并将其发送到

           <tr th:each="message : ${messages}">
            <td th:text="${message}">Text ...</td>
        </tr>

dashboard-content.html

我可以看到从controller发送来的值。

但是为什么我看不到dashboard.html甚至h2的文字?

我想将值设为left-nav.html

因此,首先到达dashboard,但是dashboard从布局中获得left-nav。那么,我该如何管理呢?转换

  <th:block th:include="layout/left-nav"></th:block>

layout.html

  <th:block layout:fragment="left-nav"/>

但它已经结构。我需要保留它。

0 个答案:

没有答案