data-binding – 数据绑定到Grails中命令的枚举

我有一节课:

class User {
    Set<Foo> foos = []
}

其中Foo是枚举:

class Foo { A, B, C, D}

我有一个控件操作,其参数类型为User

def someAction = {User user ->
    // impl omitted   
}

我在GSP中创建了一个多选

<g:select name="foos" multiple="true" from="${Foo.values()}"/>

但是当我提交表单时,所选值不会绑定到User命令对象的foos属性.我究竟做错了什么?

最佳答案
http://www.grails.org/TipsAndTricks

枚举用法

如果你想在一个元素中使用带有“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”添加到您的代码中.图片来源:Gregg Bolinger

点赞