我的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