簡體   English   中英

Grails如何將String轉換為Enum?

[英]How does Grails convert String to Enum?

我的枚舉中有一個自定義的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實例時會發生TaxRate ...

我應該覆蓋什么才能支持這種自定義映射? 試圖覆蓋valueOf(String)以錯誤結束..

你看過這個頁面底部的條目了嗎?

如果你想在一個元素中使用帶有“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"添加到您的代碼中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM