web-dev-qa-db-ja.com

Thymeleaf th:text-HTML構造を削除せずにテキストを挿入する

私はthymeleafの初心者で、テンプレートを作成しようとしています。私の問題はこのコードです:

[〜#〜] code [〜#〜]

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

この出力を取得したい:

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

しかし、これは実際の出力です。

<h1> TITLE </h1>

「小」の中にあるものを削除しないようにするにはどうすればよいですか?.

前もって感謝します。

43
JohnPortella

私は同じ問題に直面しました。 答えは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>
121
Faraj Farook

タグのセマンティクスに関係なく、正しい答えは次のとおりです。

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

この方法で、Thymeleafはde <span>タグと結果はあなたが期待するものです:

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

よろしく!

7

h1smallタグは小さく表示されないため、何をしようとしているのかわかりません。 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>
1
Michiel Bijlsma

@Faraj応答に加えて、th:block このような

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