Spring Boot 百里香动态文字标签

wlp8pajw  于 2023-03-18  发布在  Spring
关注(0)|答案(1)|浏览(134)

在控制器中,我向模型添加了一系列属性,如test_1test_2test_3。在thymeleaf中,我想在文本标记中使用这些属性,如th:text="${test_1}"。然而,文本位于片段中,所以我想动态设置标记中的数字。我觉得关键是使用th:with或preprocessing,但我还没有找到有效的方法。以下是我尝试的方法。
th:with="i='test_' +${number}" th:text="${i}"
th:text="'test_' + ${number}"
th:text="${'test_'+__${number}__}"
所有这些都只是将test_1(或指定的任何数字)作为输出,而不是从模型中提取该值。

yeotifhr

yeotifhr1#

您可以使用以下方法:

<div th:text="${__${'test_' + number}__}"></div>

这里使用了与第三个示例非常相似的东西,但是它将整个字符串连接放在了一个预处理器中。
试验数据:

  • number在Java/Spring模型中设置为2
  • test_2在Java/Spring模型中设置为"bar"

说明:
1.首先,使用预处理器语法构建所需的字符串-其中该字符串与模型中的变量匹配:
__${'test_' + number}__
上述Thymeleaf表达式的计算结果为字符串test_2
1.因为这是一个预处理变量,当它被 Package 在${...}中时,它实际上变成了以下形式:
${test_2}
上面的计算结果是字符串"bar"-这就是您想要的。
“* 文本在片段中 *":我不知道这有甚么关系,应该没有关系,如果我有误解,也许你可以把问题修改清楚。

相关问题