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



示例:

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 消息。有两种选择:

  1. 将 valueMessagePrefix 添加到所选内容。
  2. 使枚举实现org.springframework.context.MessageSourceResolvable,如此博客文章中所述。

有关详细信息,请参阅此问题。

相关内容

  • 没有找到相关文章

最新更新