Grails I18N消息属性文件与美国各州

时间:2013-09-24 22:35:53

标签: grails

如何设置包含所有美国州的I18N消息属性文件。我希望能够将这些添加到我的gsp文件中的g:select标记中。 我在网上看到了不同的方式来做这件事。对grails不熟悉并没有帮助。任何帮助赞赏。

示例:

<select> 
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
.......
</select> 

1 个答案:

答案 0 :(得分:0)

我看到了几种方法......

在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}"/>

我有点喜欢第二种方式。我还会在我的模型上键入状态字段作为状态枚举类型而不仅仅是字符串。但这些中的任何一个都适合你...