我的枚举中有一个自定义toString
方法:
enum TaxRate implements Serializable {
RATE23(23.0),
...
private String s
private BigDecimal rate
private TaxRate(BigDecimal s) {
this.s = s + "%"
this.rate = s * 0.01
}
public String toString() {
return s
}
现在,当我在HTML中显示费率时,我得到了很好的输出,如TAX:23.0%。
但是,如果用户从<select>
中选择税,而发送的值为23.0%
,那么会发生什么?Grails无法创建/获取TaxRate
实例...... < / p>
我应该覆盖什么来支持这种自定义映射?试图覆盖valueOf(String)
以错误结束..
答案 0 :(得分:6)
您是否在bottom of this page看到了该条目?
如果你想在一个元素中使用带有“value”字符串属性(一个很常见的习语)的枚举,试试这个:
enum Rating {
G("G"),PG("PG"),PG13("PG-13"),R("R"),NC17("NC-17"),NR("Not Rated")
final String value
Rating(String value) { this.value = value }
String toString() { value }
String getKey() { name() }
}
然后将
optionKey="key"
添加到您的代码中。