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

grails I18N消息属性文件与美国各州,grails,Grails,我将如何设置一个包含所有美国州的I18N消息属性文件。我希望能够将这些添加到gsp文件中的g:select标记中。 我在网上看到了很多不同的方法。而对于grails来说是个新手并没有帮助。谢谢你的帮助 例如: <select> <option value="AL">Alabama</option> <option value="AK">Alaska</option> <option value="AZ">Arizona&l

我将如何设置一个包含所有美国州的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> 

阿拉巴马州
阿拉斯加州
亚利桑那州
阿肯色州
加利福尼亚
科罗拉多州
.......

我看到了几种方法

在Config.groovy中:

com.app.states=[[abbr: 'AL', name: 'Alabama'],[abbr: 'AK', name: 'Alaska']..........]
那么在普惠制中:

<g:select name="state" from="${grailsApplication.config.com.app.states}" optionKey="abbr" optionValue="name" noSelection="${['null':'Select One...']}" value="${obj.state}"/>
在messages.properties中添加消息:

com.app.enum.AL=Alabama
com.app.enum.AK=Alaska
...
...
...
那么在普惠制中:

<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枚举类型,而不仅仅是字符串。但这两种方法中的任何一种都应该适合你……

这可能非常容易,因为我觉得这并不容易。也许有人能给我一个线索?在这个阶段,我甚至不在乎它是否在I18N文件中。只是想知道如何使用g:select生成状态。对不起,请重新阅读您的问题。第一个并不能真正解决i18n问题。您可能会在g:select中添加'valueMessagePrefix',然后执行类似的操作。您只需要从标记中去掉“optionValue”。
<g:select name="state" from="${com.app.enum.State.values()}" optionKey="key" valueMessagePrefix="com.app.enum" noSelection="${['null':'Select One...']}" value="${obj.state.key}"/>