Spring Boot属性模型中的Thymeleaf代码

时间:2018-07-08 16:06:19

标签: spring spring-boot thymeleaf

是否可以通过attributeModel将百里香叶代码发送到View,以被视为标准代码?

我只想在需要时才在不同位置加载一段代码(百里香片段)。 但是当我尝试这样做时:

Spring Boot Controller:

model.addAttribute("fragment", "<th:block th:include=\"fragments/header :: body\"></th:block>");

查看:

<div th:text="${fragment}"></div>

在WebBrowser中,作为TEXT:

<th:block th:include="fragments/header :: body"></th:block> 

我可以强制重新渲染吗?我该怎么办?但是,如果不可能,我该怎么办?

1 个答案:

答案 0 :(得分:0)

th:text解析的所有内容都设置为innerHTML,并且不会重新呈现。 您可以在controller中设置参数,然后检查Thymeleaf是否已设置,然后包含或替换您的片段。像这样:

控制器

model.addAttribute("isFragmentBodyShow", true);

查看

<th:block th:if="${isFragmentBodyShow}" th:include="fragments/header :: body"></th:block> 

您还可以将片段名称从contoller发送到Thymeleaf,并将其在th:include中用于动态模板包含。