@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>
  • Вопрос задан
  • 760 просмотров
Решения вопроса 1
piatachki
@piatachki
Собственно, в разметке main и нет вызова фрагмента navigantion. Вы вызываете пустой фрагмент content из первого шаблона (кстати, непонятный неймспес: layout:fragment="content", в официальной документации я его не нашёл увидел ссылку в заголовке). Он, я так надеюсь, успешно подставляется. Но вызов навигации из второго шаблона в первом шаблоне не попадает в основной, так как находится за границами контекста вызываемого фрагмента content
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы