【问题标题】:Get enum value in JSP using JSTL使用 JSTL 在 JSP 中获取枚举值
【发布时间】:2017-06-19 03:46:58
【问题描述】:

我试图在 JSP 页面中获取枚举值,但出现异常

org.apache.jasper.JasperException: javax.el.MethodNotFoundException: Method not found: class org.hibernate.collection.internal.PersistentSet.getFieldType()

包 com.nfdil.loyalty.enums;

public enum FieldTypeEnum {
    TEXT_BOX("TEXT_BOX"), CHECK_BOX("CHECK_BOX");

    private String fieldType;

    private FieldTypeEnum(String fieldType) {
        this.fieldType = fieldType;
    }

    public String getFieldType() {
        return fieldType;
    }
}

JSP 页面中的代码:

<c:when test="${programFuncFileds.getFieldType() == FieldTypeEnum.TEXT_BOX.getFiledType()}">                                                
</c:when>

我不想使用任何硬代码。

这里有参考表格Access Enum value using EL with JSTL

但我的问题没有解决。

【问题讨论】:

  • 似乎 programFuncFileds 对象没有 getFieldType 方法。您应该检查它是否是正确的对象。
  • 你可以减少你的枚举代码。 fieldType 参数不是必需的,因为 fieldType 字符串与常量本身相同。只需定义一个没有任何字段和方法的枚举。要获取枚举常量的字符串,可以使用 TEXT_BOX.name()。

标签: java jsp enums


【解决方案1】:

解决办法是:

<c:set var="filedTypeEnum" value="<%=FieldTypeEnum.TEXT_BOX.getFieldType()%>" />

<c:when test="${programFuncFields.getFieldType() == filedTypeEnum}">
</c:when>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多