エスケープしたい生データを含む文字列があります。文字列には、span タグに置き換えたいマーカーも含まれています。
たとえば、私の文字列は
"何とか{0}スパンする何か{1} < ランダムな文字 <"
上記を div 内でレンダリングし、{0} を {1} に置き換えたい
コントローラーで置換を行う、 th:utext属性を使用するなど、さまざまなことを試しましたが、SAX 例外が発生します。
何か案は?
i18n を使用してこれを行うことができますか?
何かのようなもの:
リソースのプロパティ:
string.pattern=my name is {0} {1}
タイムリーフ ビュー:
<label th:text="#{__${#string.pattern('john', 'doe')}__}"></label>
結果は次のようになります。
my name is john doe
これが良い方法かどうかはわかりません。しかし、それがあなたに役立つことを願っています
フォーマットされた文字列を出力するには、メッセージ パラメータを使用するのが正しい方法のようです。http://www.thymeleaf.org/doc/usingthymeleaf.html#messagesを参照してください
SAX例外を回避するために、文字エンティティ参照を渡す必要があると思われます
<span th:utext = "#{string.pattern(${'<span>john</span>'}, ${'<span>doe</span>'})}"/>
または、マークアップを .properties ファイルに配置します。
string.pattern=my name is <span>{0}</span> <span>{1}</span>