Ruslan Akhundov
Ruslan Akhundov

Reputation: 2216

Inject html into thymeleaf template

I have thymeleaf templates lying in database,

First I retrieve template and process it:

String processedTemplate = templateEngine.process(databaseTemplate, context);

So now processedTemplate contains html as a String.

Then I retrieve another template and do basically the same, but I want also inject previous template into it, so the java code should look like:

Context context = new Context(Locale.ENGLISH);
context.setVariable("htmlToInject", processedTemplated);
String result = templateEngine.process(mainTemplate, context);

So what should I put into my mainTemplate to be able to inject another html via Context into it?

I saw something like this:

<div th:replace="fragments/header :: header">Header</div>

But it works with templates from file, but not when they are lying in database.

Upvotes: 10

Views: 7001

Answers (1)

holmis83
holmis83

Reputation: 16644

It sounds that you want to insert text without HTML escaping, you do that with th:utext:

<div th:utext="${htmlToInject}"></div>

Or with inlining:

[(${htmlToInject})]

Upvotes: 17

Related Questions