0

我将如何与美国所有州一起设置 I18N 消息属性文件。我希望能够将这些添加到我的 gsp 文件中的 ag: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> 
4

1 回答 1

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

我比较喜欢第二种方式。我还将模型上的 state 字段键入为 State 枚举类型,而不仅仅是一个字符串。但是这些中的任何一个都应该适合你......

于 2013-09-25T16:38:21.177 回答