我的Grails应用程序有大量枚举看起来像这样:Grails的绑定请求参数枚举
public enum Rating {
BEST("be"), GOOD("go"), AVERAGE("av"), BAD("ba"), WORST("wo")
final String id
private RateType(String id) {
this.id = id
}
static public RateType getEnumFromId(String value) {
values().find {it.id == value }
}
}
如果我有一个命令对象,像这样:
class MyCommand {
Rating rating
}
我想(例如)自动将值为“wo”的请求参数转换为Rating.WORST。
定义自定义转换器的过程描述为here(在将字符串转换为日期的上下文中)。虽然这个过程没问题,但我不想为每个枚举创建一个实现PropertyEditorSupport的类。有更好的选择吗?
干得好!我正在努力解决同样的问题。为什么这不是Grails的标准部分? Grails支持将请求参数绑定到域/命令对象是非常糟糕的。 – mcv 2009-12-17 18:40:33
Grails不支持将枚举的绑定请求参数,但默认情况下按名称绑定。如果你想通过一些其他的枚举属性(例如通过id,如上)来绑定,你需要自己定义绑定 – 2011-09-30 08:12:12