Использование th: block (фрагменты) в шаблонах тимелист - PullRequest
0 голосов
/ 01 марта 2020

Я все еще новичок в Thymeleaf и SpringBoot.

Я пытался внедрить блок со всеми отображениями javascript в страницу - dashboardAdmin. html, используя фрагменты тимелина.

Мне удалось правильно внедрить фрагменты с обернутым блоком, используя обычные фрагменты, так как мне пришлось вставить несколько тегов сценария, которые не входят ни в один тег в шаблоне html, я не смог использовать обычный метод.

Я нашел похожий вопрос здесь и следовал указанному решению c, но все еще не удалось, и я добавил зависимость. Возможно, есть какая-то синтаксическая ошибка, о которой я не знаю. Так как я не мог найти много ссылок по этому поводу, может ли кто-нибудь любезно дать мне совет по этому поводу?

Это фрагмент . html, который содержит все шаблоны для вставки на другие страницы

<body>
<th:block layout:fragment="script">
    <script th:src="@{/vendor/login_v14/vendor/jquery/jquery-3.2.1.min.js}"></script>
    <!-- Bootstrap 4 -->
    <script th:src="@{/vendor/bootstrap/js/bootstrap.bundle.min.js}"></script>
    <!-- jsGrid -->
    <script th:src="@{/vendor/jsgrid/demos/db.js}"></script>
    <script th:src="@{/vendor/jsgrid/jsgrid.min.js}"></script>
    <!-- AdminLTE App -->
    <script th:src="@{/js/main.js}"></script>
</th:block>
</body>

Пока это шаблон страницы, который я добавляю блок для - dashboardAdmin. html

<!DOCTYPE html>
<html lang="fr" xmlns:th="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/html"
             xmlns:layout="http://www.w3.org/1999/xhtml"
             layout:decorate="~{fragments/fragments}">
<head th:replace="fragments/fragments :: head">
</head>
<body class="hold-transition sidebar-mini">

<!--js scripts-->
<th:block layout:fragment="script">

</th:block>
</body>

Если кто-то может сказать мне, что я здесь не так делаю, это будет очень цениться: D!

1 Ответ

0 голосов
/ 01 марта 2020

Я думаю, вы можете упростить HTML, чтобы получить то, что вам нужно.

В вашем dashboardAdmin.html вставьте что-то вроде этого в место, где вы хотите разместить свой фрагмент:

<div th:replace = "fragment.html :: script1">
</div>

(Вам может потребоваться настроить этот "fragment.html", если ваш фрагмент HTML файл находится в каком-то другом месте в вашем каталоге ресурсов.)

В вашем fragment.html вы можете использовать что-то вроде этого :

<th:block th:fragment="script1">
    <div>your content here, instead of this div</div>
</th:block>

<th:block th:fragment="script2">
    <div>your content here, instead of this div</div>
</th:block>

Это все содержимое файла фрагмента, в моем случае - но, очевидно, вы можете заменить мой <div>...</div> на все HTML из вашего вопроса.

I включили 2 отдельных именованных фрагмента в вышеприведенном примере, для иллюстрации.

Содержимое блока «script1» (но не сам содержащий блок) будет вставлено на вашу dashboardAdmin.html страницу.

Это должно быть так просто, если я правильно понял ваш вопрос. По сути, подход не должен отличаться от того, как вы упомянули, что вы уже можете вставлять фрагменты в другие HTML файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...