12

例子:

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

JAN1 "January Biweekly 1",
JAN2 "January Biweekly 2",

等等

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

"January Biweekly 1"
"January Biweekly 2" ...

不是

JAN1
JAN2
FEB1
FEB2
FEB3 ...

我在 g:select 中尝试了几件事来做到这一点,但没有任何成功。我想也许“它”将作为 g:select 的一部分提供(因为它显然是一个迭代)并尝试为 optionValue 引用 it.batchTag.name,但这不起作用。有什么建议么?

谢谢!

4

2 回答 2

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() }
}

请注意 getKey() 方法。然后你的 g:select

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

或者

<g:select name="batch" from="${BatchRange.values()}" keys="${BatchRange.values()*.name()}" />
于 2012-06-20T19:20:54.573 回答
0

在这种情况下,更好的方法是使用 i18n 消息。有两种选择:

  1. 将 valueMessagePrefix 添加到选择中。
  2. 按照此博客文章org.springframework.context.MessageSourceResolvable中的描述使枚举实现。

有关更多信息,请参阅此问题

于 2017-10-30T08:10:02.733 回答