web-dev-qa-db-ja.com

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

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);

「n」変数に置き換えられ、テキストとしてエンコードされる代わりにhtmlコードとして処理されるように、htmlページに何を書く必要がありますか?

48

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

<div th:remove="tag" th:utext="${n}"></div>
80
michal.kreuzman