2014-04-18 12 views
35

Używam Thymeleaf do przetwarzania szablonów html, rozumiem, jak dołączać ciągi inline z mojego kontrolera, ale teraz chcę dołączyć fragment strony do kodu HTML.Przetwarzaj zmienną jako kod html, a nie tekst

Na przykład, pozwala zatrzymać się, że mam to w mojej aplikacji 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); 

Co muszę pisać w stronę html tak, że będzie zastąpiony przez „n” zmiennej i być przetwarzane jako kod HTML zamiast tego, że jest zakodowany jako tekst?

Odpowiedz

58

Można użyć atrybutu th:utext, który oznacza tekst bez zmiany znaczenia tekstu (zob. documentation). Używaj tego z rozwagą i unikaj wprowadzania danych przez użytkownika w numerze th:utext, ponieważ może to powodować problemy z bezpieczeństwem.

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

Zaktualizowany link do v3 http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#unescaped-text – theINtoy