<c:forEach items="${availableBadges}" var="badge">
<div>
<c:choose>
<c:when test="${badge} == ${user.activeBadge};">
badge是包含两个字符串字段的enum。
User有正确的getter并返回一个Badge实例。foreach工作正常,但我不能得到正确的语法比较枚举?
您的EL语法无效。==
操作符必须与两个操作数在同一个${}
范围内,并且不能有后面的分号。
<c:when test="${badge == user.activeBadge}">
这与枚举无关。对于所有其他类型,应该使用相同的语法。
参见:
- 如何在JSF中测试枚举相等?
- 我们的EL wiki页面 标签为
[enums]
+ [el]
的问题