我看到了几种方法来做到这一点......
在 Config.groovy 中:
com.app.states=[[abbr: 'AL', name: 'Alabama'],[abbr: 'AK', name: 'Alaska']..........]
然后在你的 gsp 中:
<g:select name="state" from="${grailsApplication.config.com.app.states}" optionKey="abbr" optionValue="name" noSelection="${['null':'Select One...']}" value="${obj.state}"/>
其他方式
为您的缩写创建一个枚举:
package com.app.enum
public enum State {
AL, AK, .........., WY
}
在messages.properties中添加消息:
com.app.enum.AL=Alabama
com.app.enum.AK=Alaska
...
...
...
然后在您的 GSP 中:
<g:select name="state" from="${com.app.enum.State.values()}" optionKey="key" valueMessagePrefix="com.app.enum" noSelection="${['null':'Select One...']}" value="${obj.state.key}"/>
我比较喜欢第二种方式。我还将模型上的 state 字段键入为 State 枚举类型,而不仅仅是一个字符串。但是这些中的任何一个都应该适合你......