首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用EL和JSTL访问枚举值

使用EL和JSTL访问枚举值
EN

Stack Overflow用户
提问于 2008-09-23 20:18:26
回答 10查看 121.6K关注 0票数 107

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

public enum Status { 

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

    private final String val;

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

    public String getStatus() {
        return val;
    }

}

我想从JSTL标记访问VALID的值。具体地说就是<c:when>标记的test属性。例如。

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

我不确定这是否可能。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2008-12-15 14:27:13

与字符串进行简单的比较是可行的:

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

Stack Overflow用户

发布于 2011-05-02 17:57:09

如果使用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>
票数 54
EN

Stack Overflow用户

发布于 2008-09-24 21:09:34

因此,为了完全解决我的问题,我需要执行以下操作:

<% pageContext.setAttribute("old", Status.OLD); %>

然后我就能做到:

<c:when test="${someModel.status == old}"/>...</c:when>

它的工作效果与预期一致。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/123598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档