Thymeleaf th: text - Поместить текст без удаления HTML-структур

Я новичок в тимелеафе, и я пытаюсь создать шаблон. Моя проблема заключается в этом коде:

КОД

<h1 th:text="${header.title}" >
   title
   <small th:text="${header.subtitle}" >Subtitle</small>
</h1>

Я хочу получить этот результат:

<h1> TITLE <small> SUBTITLE</small> </h1>

Но это реальный результат:

<h1> TITLE </h1>

Как я могу это сделать, он не удаляет то, что находится внутри "маленького"?.

Заранее спасибо.

Ответы

Ответ 1

Я столкнулся с такой же проблемой. Ответ: th:inline='text'

Это должно решить вашу проблему

<h1 th:inline="text" >
   [[${header.title}]]
   <small th:text="${header.subtitle}">Subtitle</small>
</h1>

или вы также можете использовать th:remove="tag"

<h1>
    <span th:text="${header.title}" th:remove="tag">title</span>
    <small th:text="${header.subtitle}" >Subtitle</small>
</h1>

Ответ 2

Независимо от семантики тегов, правильный ответ таков:

<h1>
    <span th:text="${header.title}" th:remove="tag">title</span>
    <small th:text="${header.subtitle}" >Subtitle</small>
</h1>

Таким образом Thymeleaf удаляет <span> и результаты - то, что вы ожидаете:

<h1> 
    TITLE 
    <small>SUBTITLE</small> 
</h1>

С уважением!

Ответ 3

Я не уверен, что вы пытаетесь, так как small теги в h1 не будут казаться маленькими. th:text тег Thymeleaf th:text заменит весь текст в вашем теге h1, поэтому ваш вывод показывает только "TITLE". Вы должны поместить теги <small> вне вашего тега h1.

<h1 th:text="${header.title}">title</h1>

<small th:text="${header.subtitle}">Subtitle</small>

И я считаю, что вы ищете этот ответ:

<h1>
   <span th:text="${header.title}" th:remove="tag">title</span>
   <small th:text="${header.subtitle}">Subtitle</small>
</h1>

Ответ 4

в дополнение к ответу @Faraj, вы также можете использовать th:block like this

<h1>
   <th:block th:utext="${header.title}"/>
   <small th:text="${header.subtitle}" >Subtitle</small>
</h1>