Reputation: 2216
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
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