我想知道,是否有可能使用解析变量作为对象的获取方法名称。
喜欢:
<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}__}">
首先对双下划线内的表达式求值,然后在主表达式中使用结果。一个非常强大的工具,我有时会使用它,但是它可能会引起一些混乱(并且与其他动态生成的代码一样,如果您不注意,还会存在安全漏洞)。