Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Process thymeleaf variable as html code and not text

Tags:

java

thymeleaf

I'm using Thymeleaf to process html templates, I understood how to append inline strings from my controller, but now I want to append a fragment of html code into the page.

For example, lets stay that I have this in my java application:

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

What do I need to write in the html page so that it would be replaced by the "n" variable and be processed as html code instead of it being encoded as text?

like image 591
Alexandru Severin Avatar asked Apr 18 '14 14:04

Alexandru Severin


People also ask

How do you add Thymeleaf in HTML?

Basic inclusion with th:insert and th:replace Thymeleaf can include parts of other pages as fragments (whereas JSP only includes complete pages) using th:insert (it will simply insert the specified fragment as the body of its host tag) or th:replace (will actually substitute the host tag by the fragment's).

What is Utext?

You can use th:utext attribute that stands for unescaped text (see documentation). Use this with caution and avoid user input in th:utext as it can cause security problems.

How do I declare a variable in Thymeleaf?

We can use the th:with attribute to declare local variables in Thymeleaf templates. A local variable in Thymeleaf is only available for evaluation on all children inside the bounds of the HTML tag that declares it.


1 Answers

You can use th:utext attribute that stands for unescaped text (see documentation). Use this with caution and avoid user input in th:utext as it can cause security problems.

<div th:remove="tag" th:utext="${n}"></div> 
like image 62
michal.kreuzman Avatar answered Oct 06 '22 12:10

michal.kreuzman