Java 域类中的grails枚举类型
我使用Grails1.3.2和hbase 我有一个域类,其中一个字段是枚举类型:Java 域类中的grails枚举类型,java,grails,enums,Java,Grails,Enums,我使用Grails1.3.2和hbase 我有一个域类,其中一个字段是枚举类型: class MyDomainClass{ MyEnum enumVal //.... } public enum MyEnum { val1("val1"), val2("val2") final String value MyEnum (String value) { this.value = value } String
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>
有没有办法将枚举值保存为字符串?这似乎是一个数据类型转换问题。你可以尝试:
def domainObject = new MyDomainClass()
def enumValue = myPack.MyEnum.valueOf(params.enumVal) // This is the conversion.
然后,用新的enumValue
分配域对象
MyEnum
”后面的空格和错误消息让我怀疑,您能将其从GSP中删除吗李>
optionKey
,特别是如果您已经重写了MyEnum.toString()
选择s:
其中toFriendlyString()是我们的枚举方法,它返回用户可读的字符串表示形式。这可能是hbase的问题,因为我到处都有这样的代码,而且工作正常,但我使用的是普通的旧MySQL。我可以获取枚举值,但无法将其保存在db中。Victor感谢您的回复…我已经更改了视图,但是我得到了异常:异常消息:没有方法的签名:myPack.MyEnum.toFriendlyString()适用于参数类型:()值:[]导致的原因:错误执行标记:错误计算表达式[MyEnum.values()*.toFriendlyString()]第[15]行:groovy.lang.MissingMethodException:抱歉。这是我们自己添加的方法,它返回本地化字符串。
def domainObject = new MyDomainClass()
def enumValue = myPack.MyEnum.valueOf(params.enumVal) // This is the conversion.