使用带有 JSTL 的 EL 访问枚举值

2022-08-31 09:49:52

我有一个名为 Status 的枚举,定义如下:

public enum Status { 

    VALID("valid"), OLD("old");

    private final String val;

    Status(String val) {
        this.val = val;
    }

    public String getStatus() {
        return val;
    }

}

我想从JSTL标签访问的值。具体来说,是标记的属性。例如:VALIDtest<c:when>

<c:when test="${dp.status eq Status.VALID">

我不确定这是否可能。


答案 1

与字符串的简单比较有效:

<c:when test="${someModel.status == 'OLD'}">

答案 2

如果使用Spring MVC,Spring Expression Language(SpEL)可能会有所帮助:

<spring:eval expression="dp.status == T(com.example.Status).VALID" var="isValid" />
<c:if test="${isValid}">
   isValid
</c:if>