web-dev-qa-db-fra.com

Thymeleaf th: text - Met un texte sans supprimer les structures HTML

Je suis nouveau dans thymeleaf et j'essaie de créer un modèle. Mon problème est ce code:

CODE

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

Je veux obtenir cette sortie:

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

Mais voici le véritable résultat:

<h1> TITLE </h1>

Comment puis-je faire pour ne pas enlever ce qui est à l'intérieur de "petit"?.

Merci d'avance.

43
JohnPortella

J'ai rencontré le même problème. La réponse est th:inline='text'

Cela devrait résoudre votre problème

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

ou vous pouvez aussi utiliser th:remove="tag"

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

Indépendamment de la sémantique des balises, la bonne réponse est celle-ci:

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

De cette façon, Thymeleaf supprime de <span> tag et les résultats correspondent à ce que vous attendez:

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

Cordialement!

7
Emiliano Schiano

Je ne suis pas sûr de ce que vous essayez, car les balises small de votre h1 N'apparaîtront pas petites. La balise Thymeleaf th:text Remplacera tout le texte de votre balise h1, C’est la raison pour laquelle votre sortie n’affiche que "TITLE". Vous devez placer les balises <small> En dehors de votre balise h1.

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

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

Et je crois que vous recherchez cette réponse:

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

en plus de la réponse @Faraj, vous pouvez également utiliser th:block comme ça

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