Spring Boot、Thymeleaf 和字符串
Spring Boot, Thymeleaf and strings
您好,我正在使用 spring boot 2。4.x 并且我想使用 thymeleaf 作为我的模板引擎。
我添加了百里香发酵剂,并进行了以下测试
@Test
void name() {
StringTemplateResolver stringTemplateResolver = new StringTemplateResolver();
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(stringTemplateResolver);
Context ctx = new Context();
ctx.setVariable("franco", "prova");
String processedTemplate = templateEngine.process("<html>${franco}</html>", ctx);
Assertions.assertThat(processedTemplate).isEqualTo("<html>prova</html>");
}
但是 templateEngine 没有替换变量,processedTemplate 变量的值与输入字符串相同。
我有什么错?
谢谢
Thymeleaf 不会直接处理 HTML 中的变量。您要么必须使用 text inlining 语法:
<html>[[${franco}]]</html>
或者像这样使用标准方式(即使用前缀为 th:
的属性):
<html th:text="${franco}" />
或
<html><span th:text="${franco}" /></html>
(另外,作为旁注,StringTemplateResolver 是默认的解析器,因此您不必配置它。您的完整代码可以如下所示。)
@Test
void name() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
Context ctx = new Context();
ctx.setVariable("franco", "prova");
String processedTemplate = templateEngine.process("<html>[[${franco}]]</html>", ctx);
Assertions.assertThat(processedTemplate).isEqualTo("<html>prova</html>");
}
您好,我正在使用 spring boot 2。4.x 并且我想使用 thymeleaf 作为我的模板引擎。
我添加了百里香发酵剂,并进行了以下测试
@Test
void name() {
StringTemplateResolver stringTemplateResolver = new StringTemplateResolver();
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(stringTemplateResolver);
Context ctx = new Context();
ctx.setVariable("franco", "prova");
String processedTemplate = templateEngine.process("<html>${franco}</html>", ctx);
Assertions.assertThat(processedTemplate).isEqualTo("<html>prova</html>");
}
但是 templateEngine 没有替换变量,processedTemplate 变量的值与输入字符串相同。
我有什么错? 谢谢
Thymeleaf 不会直接处理 HTML 中的变量。您要么必须使用 text inlining 语法:
<html>[[${franco}]]</html>
或者像这样使用标准方式(即使用前缀为 th:
的属性):
<html th:text="${franco}" />
或
<html><span th:text="${franco}" /></html>
(另外,作为旁注,StringTemplateResolver 是默认的解析器,因此您不必配置它。您的完整代码可以如下所示。)
@Test
void name() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
Context ctx = new Context();
ctx.setVariable("franco", "prova");
String processedTemplate = templateEngine.process("<html>[[${franco}]]</html>", ctx);
Assertions.assertThat(processedTemplate).isEqualTo("<html>prova</html>");
}