我对百里香的新手很抱歉,如果这是一个虚假的问题。我想用百里香叶3创造一个“你好世界”。 我必须使用存储在数据库中的模板进行操作,我只能将它们作为文本。
我已经读过我需要使用StringTemplateResolver才能实现这一点。
我做了一个例子,但它没有替换我的变量$ {user},我不明白我在哪里弄错了。
// define TemplateEngine
TemplateEngine templateEngine = new TemplateEngine();
StringTemplateResolver templateResolver = new StringTemplateResolver();
templateEngine.setTemplateResolver(templateResolver);
String htmlTemplate = "<b>${user}</b>";
Context context = new Context();
context.setVariable("user", "Ray Donovan");
String res = templateEngine.process(htmlTemplate, context);
System.out.println(res); // it prints out: <b>${user}</b>
有人可以向我强调这一点吗?
提前致谢。
答案 0 :(得分:5)
在官方文件Thymeleaf #text-inlining中报道:
[[...]]之间的表达式被认为是表达内联 Thymeleaf,在其中你可以使用任何类型的表达 也可以在th:text属性中有效。
这样说,你必须使用双方括号表示法。
您应该使用<b>${user}</b>
而不是<b>[[${user}]]</b>
。
答案 1 :(得分:3)
您可以参考@araknoids
回答或将htmlTemplate
更新为
String htmlTemplate = "<b th:text="${user}"></b>";