尝试使用EL条件时,我发现枚举值完全被忽略了。这对我来说似乎与规范相反。
令我惊讶的是,这些都被评估为空。为什么Enum类没有被识别? 这在当前稳定的Tomcat实例中发生。
这可能是一个类路径问题吗?该Enum在控制器代码中成功使用,但在JSP中的其他地方没有使用。它在部署的lib目录中提供了一个jar。
更新: 我的意图是将提供的整数与Enum的属性进行比较,如下所示:
我希望避免硬编码“FAIL”等整数值,而是使用枚举进行比较。
<c:out value='${com.foobar.data.BookingStatus.FAILED}' />
<c:out value='${BookingStatus.FAILED}' />
<c:out value='${com.foobar.data.BookingStatus.failed}' />
<c:out value='${BookingStatus.failed}' />
<c:if test="${empty BookingStatus.FAILED }">empty</c:if>
令我惊讶的是,这些都被评估为空。为什么Enum类没有被识别? 这在当前稳定的Tomcat实例中发生。
这可能是一个类路径问题吗?该Enum在控制器代码中成功使用,但在JSP中的其他地方没有使用。它在部署的lib目录中提供了一个jar。
更新: 我的意图是将提供的整数与Enum的属性进行比较,如下所示:
<c:when test='${bookingInformation.bookingStatus eq BookingStatus.FAILED.code}'>
FOOBARFAIL
</c:when>
很遗憾,被检查的值无法更改,将保持为整数。该枚举如下(简化):
public enum BookingStatus {
COMPLETED(0), FAILED(1);
private final int code;
private BookingStatus(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
我希望避免硬编码“FAIL”等整数值,而是使用枚举进行比较。