在控制器中,我向模型添加了一系列属性,如test_1
、test_2
、test_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(或指定的任何数字)作为输出,而不是从模型中提取该值。
1条答案
按热度按时间yeotifhr1#
您可以使用以下方法:
这里使用了与第三个示例非常相似的东西,但是它将整个字符串连接放在了一个预处理器中。
试验数据:
number
在Java/Spring模型中设置为2
。test_2
在Java/Spring模型中设置为"bar"
。说明:
1.首先,使用预处理器语法构建所需的字符串-其中该字符串与模型中的变量匹配:
__${'test_' + number}__
上述Thymeleaf表达式的计算结果为字符串
test_2
。1.因为这是一个预处理变量,当它被 Package 在
${...}
中时,它实际上变成了以下形式:${test_2}
上面的计算结果是字符串
"bar"
-这就是您想要的。“* 文本在片段中 *":我不知道这有甚么关系,应该没有关系,如果我有误解,也许你可以把问题修改清楚。