Это 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 является основным декоратором.Он имеет нижний колонтитул заголовок (для библиотек), а также основной заголовок (для верхней панели навигации) и фрагмент = содержимое для динамического содержимого(для панель инструментов , например, содержимое панели ).Таким образом, любой HTML-код может использовать эту компоновку, не только панель инструментов .
Но для панель инструментов мне нужно отправить параметры в dashboard-content ,ТАК, от контроллера, это идет к приборной панели .Затем он должен перейти к dashboard-content , но я даже не могу показать его в dashboard .Я даже не могу показать 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"/>
, но оно уже имеет структуру.Мне нужно сохранить это.