我有我的後端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