Thymeleaf th:text – Fügen Sie einen Text ein, ohne HTML-Strukturen zu entfernen
-
26-12-2019 - |
Frage
Ich bin neu bei Thymeleaf und versuche, eine Vorlage zu erstellen.Mein Problem ist dieser Code:
CODE
<h1 th:text="${header.title}" >
title
<small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Ich möchte diese Ausgabe erhalten:
<h1> TITLE <small> SUBTITLE</small> </h1>
Aber das ist die eigentliche Ausgabe:
<h1> TITLE </h1>
Wie kann ich dafür sorgen, dass nicht der Inhalt von „klein“ entfernt wird?
Dank im Voraus.
Lösung
Ich stand vor dem gleichen Problem. Die Antwort ist th:inline='text'
Dies sollte Ihr Problem lösen
<h1 th:inline="text" >
[[${header.title}]]
<small th:text="${header.subtitle}">Subtitle</small>
</h1>
oder Sie können auch verwenden th:remove="tag"
<h1>
<span th:text="${header.title}" th:remove="tag">title</span>
<small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Andere Tipps
Unabhängig von der Semantik der Tags lautet die richtige Antwort:
<h1>
<span th:text="${header.title}" th:remove="tag">title</span>
<small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Auf diese Weise entfernt Thymeleaf de <span>
Tag und die Ergebnisse sind, was Sie erwarten:
<h1>
TITLE
<small>SUBTITLE</small>
</h1>
Grüße!
Zusätzlich zur @Faraj-Antwort können Sie auch verwenden th:block
so was
<h1>
<th:block th:utext="${header.title}"/>
<small th:text="${header.subtitle}" >Subtitle</small>
</h1>
Ich bin mir nicht sicher, was Sie versuchen, da die small
Tags in Ihrem h1
wird nicht klein erscheinen.Das Thymelblatt th:text
Tag ersetzt den gesamten Text in Ihrem h1
Tag, das ist der Grund, warum Ihre Ausgabe nur „TITLE“ anzeigt.Sie sollten das platzieren <small>
Tags außerhalb Ihres h1
Etikett.
<h1 th:text="${header.title}">title</h1>
<small th:text="${header.subtitle}">Subtitle</small>
Und ich glaube, Sie suchen nach dieser Antwort:
<h1>
<span th:text="${header.title}" th:remove="tag">title</span>
<small th:text="${header.subtitle}">Subtitle</small>
</h1>