【问题标题】:thymeleaf resolved variablethymeleaf 解析变量
【发布时间】:2016-07-19 17:04:22
【问题描述】:

我想知道,是否可以使用已解析变量作为对象的 getter 名称。

喜欢:

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

${tdentry} 类似“键”或“值”

所以我会得到 entry.key 并将在我的 java 对象 rowEntry 中解析为 rowEntry.getKey()

【问题讨论】:

    标签: java thymeleaf


    【解决方案1】:

    这种结构需要非常小心,因为如果${tdentry} 没有您期望的值之一,您很快就会遇到麻烦。一般来说,处理这种事情的方法就是让一个变量存储键,一个变量存储值,然后使用像th:if这样的条件来选择哪个。这可能看起来有点冗长,但至少对于稍后查看代码的人来说是清楚正确和显而易见的。

    但是您在 Thymeleaf 中要求的功能称为“Preprocessing”。你可以使用这样的东西:

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

    首先计算双下划线内的表达式,然后将结果用于主表达式。一个非常强大的工具,我偶尔会使用它,但它可能会导致一些混乱(和其他动态生成的代码一样,如果你不小心,就会出现安全漏洞)。

    【讨论】:

    • 工作。感谢您提到安全问题。所以也许我会使用你的第一个建议。
    猜你喜欢
    • 2018-11-08
    • 2016-12-07
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2019-06-01
    • 2020-06-05
    相关资源
    最近更新 更多