我有我的后端Java代码follwoing枚举:与枚举值JSTL比较
public static enum CountryCodes implements EnumConstant {
USA, CAN, AUS;}
而且在jsp我想通过枚举值进行迭代,做一个比较:
<c:set var="countryCodes" value="<%=RequestConstants.CountryCodes.values()%>" />
<td><select>
<c:forEach items="${countryCodes}" var="countryCode">
<c:choose>
<c:when test="${CURRENT_INSTITUTION.countryCode == countryCode}">
<option value="${countryCode}" selected="selected">${countryCode}</option>
</c:when>
<c:otherwise>
<option value="${countryCode}">${countryCode}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select></td>
但是,问题在于,CURRENT_INSTITUTION.countryCode
是从数据库中读取的,可能不是枚举值之一。
如果CURRENT_INSTITUTION.countryCode
是其他值比枚举值,(比方说CHN
),则比较引发以下例外:
java.lang.IllegalArgumentException异常:无枚举常数CountryCodes.CHN定义。
我必须应对这种情况,因为数据库存储的旧数据未经过健全性检查并且可能包含无效值。
那么有没有一种方法可以在CURRENT_INSTITUTION.countryCode
不是枚举值之一时返回false?或者有什么方法可以确定CURRENT_INSTITUION.countryCode
是否是枚举值之一,以便我可以根据该值采取适当的操作?
什么是'EnumConstant'? – skaffman