在g中使用枚举值:当枚举是选择对象的属性时选择

Ale*_*exx 12 grails enums select scaffolding gsp

例:

batchTag是batchRange的枚举类型属性,其值如下:

JAN1 "January Biweekly 1",
JAN2 "January Biweekly 2",
Run Code Online (Sandbox Code Playgroud)

等等

我想在select,IOW中显示batchTag的VALUE,select应该包含

"January Biweekly 1"
"January Biweekly 2" ...
Run Code Online (Sandbox Code Playgroud)

JAN1
JAN2
FEB1
FEB2
FEB3 ...
Run Code Online (Sandbox Code Playgroud)

我在g中尝试了几个方面:选择这样做,但没有任何成功.我想也许"它"可以作为g:select(因为它显然是一个迭代)的一部分可用,并尝试引用option.VatchTag.name作为optionValue,但这不起作用.有什么建议?

谢谢!

Gre*_*egg 23

enum BatchRange {
    JAN1 "January Biweekly 1",
    JAN2 "January Biweekly 2",

    final String value

    BatchRange(String value) { this.value = value }

    String toString() { value } 
    String getKey() { name() }
}
Run Code Online (Sandbox Code Playgroud)

注意getKey()方法.然后你的g:选择

<g:select name="batch" from="${BatchRange.values()}" optionKey="key" />
Run Code Online (Sandbox Code Playgroud)

要么

<g:select name="batch" from="${BatchRange.values()}" keys="${BatchRange.values()*.name()}" />
Run Code Online (Sandbox Code Playgroud)