use*_*455 37 java spring thymeleaf
我有一个枚举,Constants:
enum Constants {
ONE,TWO,THREE;
}
Run Code Online (Sandbox Code Playgroud)
如何比较Thymeleaf中的枚举常量.
谢谢.
Nic*_*ick 75
要与枚举常量进行比较,请使用以下代码:
th:if="${day == T(my.package.MyEnum).MONDAY}"
Run Code Online (Sandbox Code Playgroud)
Tac*_*aGT 35
还有一种方法:
th:if="${constant.name() == 'ONE'}"
Run Code Online (Sandbox Code Playgroud)
它更短但与字符串表示相比,在重构时可能会导致问题.
@Nick的答案有一个小的语法错误,它缺少最后一个大括号.它应该是
th:if="${day == T(my.package.MyEnum).MONDAY}"
Run Code Online (Sandbox Code Playgroud)
th:if="${#strings.toString(someObject.constantEnumString) == 'ONE'}">
Run Code Online (Sandbox Code Playgroud)
另一种选择是在开关中使用枚举的方法name()。一个例子是:
<th:block th:switch="${imageType.name()}>
<span th:case="'ONE'"></span>
<span th:case="'TWO'"></span>
<span th:case="'THREE'"></span>
</th:block>
Run Code Online (Sandbox Code Playgroud)
它类似于带有ENUM的Java Switch,而不是类似${day == T(my.package.MyEnum).MONDAY}或${#strings.toString(someObject.constantEnumString) == 'ONE'}看起来很奇怪的其他答案。
| 归档时间: |
|
| 查看次数: |
30561 次 |
| 最近记录: |