Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JSTL在JSP中获取枚举值_Java_Jsp_Enums - Fatal编程技术网

Java 使用JSTL在JSP中获取枚举值

Java 使用JSTL在JSP中获取枚举值,java,jsp,enums,Java,Jsp,Enums,我试图在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

我试图在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>

我不想使用任何硬代码

这里有参考表格

但是我的问题没有解决。

解决方案是:

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

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

解决方案是:

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

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


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