簡體   English   中英

Spring 啟動,Thymeleaf 和字符串

[英]Spring Boot, Thymeleaf and strings

您好,我正在使用 spring 啟動 2.4.x,我想使用 thymeleaf 作為我的模板引擎。

我添加了 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 沒有替換變量,並且 processesTemplate 變量的值與輸入字符串相同。

我有什么錯? 謝謝

Thymeleaf 不會直接在 HTML 中處理變量。 您要么必須使用文本內聯語法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM