我使用 grails 1.3.2 和 hbase..
我有域类,其中一个字段是枚举类型:
class MyDomainClass{
MyEnum enumVal
//....
}
public enum MyEnum {
val1("val1"),
val2("val2")
final String value
MyEnum (String value) {
this.value = value
}
String toString() { value }
String getKey() { name() }
}
<g:form action="create">
<g:select name="enumVal" from="${MyEnum ?.values()}" optionKey="key" />
<g:submitButton name="createOb" value="CreateOb"/>
</g:form>
“创建”操作必须将选定的值保存在数据库中。
当我提交时出现异常:
Cannot cast object 'val1' with class 'java.lang.String' to class 'myPack.MyEnum '
有没有办法将枚举值保存为字符串?
最佳答案
- GSP 中“
MyEnum
”后的空格和错误消息让我怀疑,你能把它从 GSP 中删除吗? - 您不需要 ?,因为
MyEnum
类应该始终存在。 - 我相信您不需要
optionKey
,尤其是当您覆盖了MyEnum.toString()
时。 我们这样从枚举中编写
select
:
其中 toFriendlyString() 是我们的枚举方法,它返回用户可读的字符串表示形式。
关于java - 领域类中的 Grails 枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247568/