thymeleaf 将字符串评估为变量

thymeleaf evaluate string as variable

假设我有一个名为“reference”的 thymeleaf 片段,它采用参数 referenceNumber="1",在我的模型中我有 "reference1_firstName" = "Bob"

<div ... th:fragment="reference(referenceNumber)">
   Reference <div th:text="${referenceNumber}"/> first name is <div th:text="${'reference' + referenceNumber + '_firstName'}".>
</div>

在上面明显不正确的示例中,我想打印出“Reference 1 first name is Bob”。看起来很简单,我可以用其他几种语言做到这一点,但到目前为止,我对 thymeleaf

的搜索是空的

有几种方法可以做到这一点。

Preprocessing:

<span th:text="${reference__${referenceNumber}___firstName}" />

#ctx basic object:

<span th:text="${#ctx.getVariable('reference' + referenceNumber + '_firstName')}" />
<span th:text="${#ctx['reference' + referenceNumber + '_firstName']}" />

或者,如果您打算以这种方式访问​​变量,请使用 Map 而不是变量。