首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在g中使用枚举的值:当枚举是选择对象的属性时选择

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

Stack Overflow用户
提问于 2012-06-21 02:58:41
回答 2查看 10.6K关注 0票数 12

示例:

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

代码语言:javascript
复制
JAN1 "January Biweekly 1",
JAN2 "January Biweekly 2",

等。

我希望在select中显示batchTag的值,因为select应该包含

代码语言:javascript
复制
"January Biweekly 1"
"January Biweekly 2" ...

代码语言:javascript
复制
JAN1
JAN2
FEB1
FEB2
FEB3 ...

我在g中尝试了几种方法:select来做这件事,但是没有成功。我认为" it“可能会作为g:select的一部分提供(因为它显然是一个迭代),并尝试在optionValue中引用it.batchTag.name,但这不起作用。有什么建议吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-21 03:20:55

代码语言:javascript
复制
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

代码语言:javascript
复制
<g:select name="batch" from="${BatchRange.values()}" optionKey="key" />

代码语言:javascript
复制
<g:select name="batch" from="${BatchRange.values()}" keys="${BatchRange.values()*.name()}" />
票数 23
EN

Stack Overflow用户

发布于 2017-10-30 16:10:03

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

  1. 将valueMessagePrefix添加到select。
  2. 按照this blog post.

中的说明使枚举实现org.springframework.context.MessageSourceResolvable

有关详细信息,请参阅this question

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11126340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档