java - 玩!框架 ENUM 和 Groovy 问题

标签 java templates groovy enums playframework

我有类似下面的东西-

女人.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 等作为选项的值,所以它无法正确显示列表。

有什么见解吗?

最佳答案

如果我正确理解您的问题,您想使用 valuePropertylabelPropertyoption 中设置正确的值。像这样的东西:

#{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} 需要 valuePropertylabelProperty 参数中的 getter,当找不到时默认为枚举 toString

关于java - 玩!框架 ENUM 和 Groovy 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974052/

相关文章:

java - 如何编写异常而不泄露敏感信息?

java - Android LinearLayout 间距

c++ - 在C++中将std::sort与迭代器和模板一起使用

c++ - 具有覆盖运算符或外部仿函数的可散列类型

groovy - 如何使用 Groovy/GPars 最有效地处理 CSV 文件的行?

java - Grails Mail 插件异常处理

java - 在 Java 中同时运行两个任务

java - 参数化多层套件

通过基类的 C++ 模板特化

java - 我如何获取spock中设置方法中的方法?