如何在百里叶片段中设置变量?

pra*_*402 11 thymeleaf

我知道Thymeleaf是为渲染视图而制作的,我只想知道是否有任何方法可以在Thymeleaf片段中设置变量请求范围?

我有一个非常大的条件表达式,我必须在应用程序中重复很多次,所以如果我可以在主布局中设置变量然后在所有其他子片段中重用它将非常有用.

我知道使用Spring拦截器并在模型中设置变量但我不愿意.

请指教.

谢谢

黄芪多糖

小智 29

在片段模板中,使用参数定义片段:

<div th:fragment=”myfragment(myvariable)”>
    <p th:text=”${myvariable}”></p>
</div>
Run Code Online (Sandbox Code Playgroud)

并在布局模板中,包含指定该变量的片段:

<div th:include=”template :: myfragment(${variable})”></div>
Run Code Online (Sandbox Code Playgroud)

然后将变量传递给片段模板.


Mar*_*rey 13

如果只需要在可以使用的片段中使用表达式的结果

th:with="var=${verylargeexpression}"
Run Code Online (Sandbox Code Playgroud)

这将创建一个局部变量,您可以在定义它的dom元素中的任何位置使用它,包括片段.