示例:
batchTag 是 batchRange 的枚举类型属性,其值如下所示:
JAN1 "January Biweekly 1",
JAN2 "January Biweekly 2",
等。
我想在选择中显示批处理标签的值,IOW,选择应包含
"January Biweekly 1"
"January Biweekly 2" ...
不
JAN1
JAN2
FEB1
FEB2
FEB3 ...
我已经在g:select中尝试了几件事来做到这一点,但没有任何成功。 我认为也许"它"可以作为g:select的一部分使用(因为它显然是一个迭代),并试图为optionValue引用 it.batchTag.name,但这不起作用。 有什么建议吗?
谢谢!
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() }
}
请注意 getKey() 方法。 然后你的g:select
<g:select name="batch" from="${BatchRange.values()}" optionKey="key" />
或
<g:select name="batch" from="${BatchRange.values()}" keys="${BatchRange.values()*.name()}" />
在这种情况下,
更好的方法是使用 i18n 消息。有两种选择:
- 将 valueMessagePrefix 添加到所选内容。
- 使枚举实现
org.springframework.context.MessageSourceResolvable
,如此博客文章中所述。
有关详细信息,请参阅此问题。