【发布时间】:2011-12-14 13:59:38
【问题描述】:
Grails 提供的CountryTagLib 有一个(过期的)国家/地区列表
class CountryTagLib {
static final ISO3166_3 = [
"scg":"Serbia and Montenegro",
"zmb":"Zambia"
]
}
我想更新此地图以将“塞尔维亚和黑山”条目替换为塞尔维亚和黑山各自的条目。
更新
我不能简单地update the contents of the Map 或use metaprogramming 因为ISO3166_3 的内容被复制到静态初始化器中的其他变量中
static {
ISO3166_3.each { k, v ->
COUNTRY_CODES_BY_NAME[v] = k
}
}
我需要在此静态初始化程序运行之前执行修改 ISO3166_3 的代码。我不认为有任何方法可以实现这一点,所以我只剩下将整个CountryTagLib 复制粘贴到自定义标记库中并在其中修改ISO3166_3 的不受欢迎的选项。我还必须更改每个 <g:countrySelect> 以使用我的标签。我真的不想这样做......
【问题讨论】: