1. ホーム
  2. java

thymeleafの変数をテキストではなくhtmlコードとして処理する

2023-09-14 22:47:29

質問

Thymeleafを使ってhtmlテンプレートを処理しています。コントローラからインライン文字列を追加する方法は理解できましたが、今度はhtmlコードの断片をページに追加したいのです。

例えば、私のJavaアプリケーションにこのようなものがあるとします。

String n="<span><i class=\"icon-leaf\"></i>"+str+"</span> <a href=\"\"></a>\n";

final WebContext ctx = new WebContext(request, response, 
                                      servletContext, request.getLocale());
ctx.setVariable("n",n);

htmlページに何を書けば、"n"変数に置き換えられ、テキストとしてエンコードされるのではなく、htmlコードとして処理されるのでしょうか?

どのように解決するのですか?

この場合 th:utext 属性は、エスケープされていないテキストを表します ( のドキュメントを参照してください。 ). これを注意深く使い、ユーザー入力が th:utext へのユーザ入力はセキュリティ上の問題を引き起こす可能性があるため、避けてください。

<div th:remove="tag" th:utext="${n}"></div>