@P_Alexander
First head

Шаблон thymeleaf не работает, где я ошибся?

Добрый день, пытаю построить страницу по шаблону thymeleaf и что то не выходит, подскажите где ошибка.
Расположение шаблона - webapp/resources/thymeleaf/base-layout.html
Расположение футера, хедера, навигатиона - webapp/resources/thymeleaf/
Расположение main page - WEB-INF/view/main.html
Я добавил в файл navigation навбар и как бы должен его увидеть на странице main, но его там нет.
Сам шаблон
<!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:replace="thymleaf/header :: header">
    <meta charset="UTF-8">
    <title>Title</title>
</head>
    <body>
    <div th:replace="thymeleaf/navigation :: navigation"></div>
        <div layout:fragment="content"></div>
        <div th:replace="thymeleaf/footer :: footer"></div>
    </body>
</html>


navigation:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>

    <title>Title</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light" th:fragment="navigation">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
        <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
            <li class="nav-item active">
                <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
                <a class="nav-link disabled" href="#">Disabled</a>
            </li>
        </ul>
        <form class="form-inline my-2 my-lg-0">
            <input class="form-control mr-sm-2" type="search" placeholder="Search">
            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form>
    </div>
</nav>
</body>
</html>


Main page
<!DOCTYPE html>
<html xmlns:th = "http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="webapp/resources/thymeleaf/base-layout.html">
<head>
    <title>MAin</title>
</head>
    <body>
        <div layout:fragment="content">
            <h1>IT is main</h1>
            <h2 th:text="${message}"></h2>
        </div>
    </body>
</html>
  • Вопрос задан
  • 959 просмотров
Решения вопроса 1
piatachki
@piatachki
Собственно, в разметке main и нет вызова фрагмента navigantion. Вы вызываете пустой фрагмент content из первого шаблона (кстати, непонятный неймспес: layout:fragment="content", в официальной документации я его не нашёл увидел ссылку в заголовке). Он, я так надеюсь, успешно подставляется. Но вызов навигации из второго шаблона в первом шаблоне не попадает в основной, так как находится за границами контекста вызываемого фрагмента content
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 18:38
1500 руб./в час
19 апр. 2024, в 18:36
1500 руб./за проект
19 апр. 2024, в 18:36
30000 руб./за проект