Thymeleaf - ненужный элемент <html>добавлен при th: replace - PullRequest
0 голосов
/ 17 июня 2020

Я использую th:replace для включения шаблонов в Thymeleaf следующим образом

master. html

<div class="faq-wrapper">
    <div th:each="faq : ${faqs}" th:remove="tag">
        <div th:replace="content-faq-card"></div>
    </div>
</div>

content-faq-card. html

<div class="faq-card">
    ...
</div>

Я инициализирую свой templateRenderer следующим образом:

ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();

templateResolver.setTemplateMode("LEGACYHTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setPrefix("/WEB-INF/");
templateResolver.setSuffix(".html");
templateResolver.setCacheable(false);

TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setTemplateResolver(templateResolver);

return templateEngine;

Он работает нормально, но если я посмотрю на сгенерированный HTML, я вижу, что каждый раз, когда я включаю content-faq-card, появляется дополнительный

<HTML><head></head><BODY>
<div class="faq-card">
    ...
</div>
</BODY></HTML>

Он отображается правильно, но HTML недействителен. Почему происходит такое накручивание? Есть ли способ избежать этого?

1 Ответ

1 голос
/ 18 июня 2020

Вам нужно определить свой <div class="faq-card"> как <div th:fragment="faq-card"> и ссылаться на него как <div th:replace="content-faq-card :: faq-card"></div>.

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