我想使用g:countrySelect存储确切的国家/地区名称。示例德国而不是DEU。它是下拉菜单中的值。下拉文本是德国,但当它将其保存到数据库时,它会更改回国家/地区代码。对不起,如果我有点天真,但我已经搜索了将近3个小时的解决方案,并且在grails网站上没有详细记录。我可以选择任何替代甚至ajax。只是为了有一个简单的方法来显示国家列表,并将能够存储国家的真实姓名而不是国家代码。谢谢!
答案 0 :(得分:5)
您可以使用此功能将ISO3国家/地区代码转换为国家/地区名称
def getCountryName(String countryCode) {
Locale.availableLocales.find{it.ISO3Country == countryCode}.displayCountry
}
// Test
println getCountryName('DEU') // prints 'Germany'
如果您想在GSP中执行此操作,最好将其作为TagLib提供。
答案 1 :(得分:0)
不确定上述解决方案何时停止工作,但如果您现在尝试,则会收到错误消息:
Couldn't find 3-letter country code for CS
使用最新的圣杯版本,获取完整国家/地区名称的当前方式是使用此标记:
<g:country code="${country}"/>
答案 2 :(得分:0)
我知道这个帖子很旧,但我一直在寻找同样的问题,我不得不分享我的解决方案。
您可以使用 CountryTagLib 对象将 ISO3 代码转换回完整的国家/地区名称,如下所示:
def country = CountryTagLib.ISO3166_3[code]
“code”属性是您从