我想知道,是否有可能使用解析变量作为对象的获取方法名称。

喜欢:

   

   <div th:with="finalObject = ${rowentry.${tdentry}} >
              <p th:text="${finalObject}">object</p>
   </div>




${tdentry}一样,例如“键”或“值”

所以我将获得entry.key并将其解析为我的Java对象rowEntry.getKey()中的rowEntry

最佳答案

需要特别注意这种构造,因为如果${tdentry}没有您期望的值之一,您可能会很快陷入困境。通常,解决这类问题的方法就是让一个变量存储键,一个变量存储值,然后使用诸如th:if之类的条件来选择哪一个。这可能看起来有些复杂,但至少对于以后查看代码的人而言,至少可以明显正确且显而易见。

但是您在Thymeleaf中要求的功能称为“ Preprocessing”。您可以使用如下形式:

<div th:with="finalObject=${rowentry.__${tdentry}__}">


首先对双下划线内的表达式求值,然后在主表达式中使用结果。一个非常强大的工具,我有时会使用它,但是它可能会引起一些混乱(并且与其他动态生成的代码一样,如果您不注意,还会存在安全漏洞)。

09-05 05:22