我有类似下面的东西-
女人.java
...
@Entity
public class Woman extends Model {
public static enum Outcome {
ALIVE, DEAD, STILL_BIRTH, LIVE_BIRTH, REGISTER
}
...
}
文件.java
...
@Entity
public class Form extends Model {
...
public Outcome autoCreateEvent;
...
}
创建.html
#{select "autoCreateEvent", items:models.Woman.Outcome.values(), id:'autoCreateEvent' /}
它将 ENUM 值保存在 DB 中,这是可以的。但是,当我重新加载/编辑时,问题就出现了。因为它使用 ALIVE、DEAD 等作为选项的值,所以它无法正确显示列表。
有什么见解吗?
最佳答案
如果我正确理解您的问题,您想使用 valueProperty
和 labelProperty
在 option
中设置正确的值。像这样的东西:
#{select "autoCreateEvent", items:models.Woman.Outcome.values(), valueProperty:'ordinal', labelProperty: 'name', id:'autoCreateEvent' /}
编辑:
为了让它工作,你需要稍微调整一下枚举,如下所示:
public enum Outcome {
A,B;
public int getOrdinal() {
return ordinal();
}
}
原因是 Play #{select} 需要 valueProperty
和 labelProperty
参数中的 getter,当找不到时默认为枚举 toString
关于java - 玩!框架 ENUM 和 Groovy 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974052/