Thymeleaf无法读取对象的枚举值

时间:2015-04-17 22:29:48

标签: spring-mvc spring-boot thymeleaf

我正在尝试使用具有枚举属性的对象加载表单,似乎一切正常,但是当我尝试应用类时,我收到错误。我可以在HTML代码中看到已检查属性已正确应用,但是我需要将特定类应用于checked元素,并且在下一行中是我遇到问题的那个。

th:classappend="${'__${currency}__' == '__${reference.currency}__' ? 'active'}"

完整元素看起来像这样

<div class="btn-group" data-toggle="buttons">
    <label th:each="currency : ${T(entity.CurrencyEnum).values()}"
    th:for="${#ids.next('currency')}" class="btn btn-default" th:classappend="${'__${currency}__' == '__${reference.currency}__' ? 'active'}">
        <input type="radio" th:name="currency" th:field="*{currency}"
        th:text="${currency}" th:value="${currency}" />
    </label>
</div>

提前致谢...

---更新---

以下是解决问题后的示例代码。问题在于我放置了最终的 } ,请注意这个细节。

<div th:fragment="currency (selected)">
    <label
        th:each="currency : ${T(CurrencyEnum).values()}"
        th:for="${#ids.next('currency')}" class="btn btn-default"
        th:classappend="${currency == selected} ? 'active'"> <input type="radio"
        th:name="currency" th:field="*{currency}" th:text="${currency}" th:value="${currency}" />
    </label>
</div>

1 个答案:

答案 0 :(得分:0)

假设reference是某个地方定义的变量并且在此上下文中可见,您可以试试这个:

th:classappend="${currency} eq ${reference.currency} ? 'active'"