这是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>
我想看qssq
或ssq
或messages
,但我看不到任何一个。
相反,我看到了"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"/>
但它已经结构。我需要保留它。