CountryTagLib
, предоставленный Grails, содержит (устаревший) список стран
class CountryTagLib {
static final ISO3166_3 = [
"scg":"Serbia and Montenegro",
"zmb":"Zambia"
]
}
Я хочу обновить эту Карту, чтобы заменить запись "Сербия и Черногория" на запись для каждой из Сербии и Черногории.
Обновление
Я не могу просто обновить содержимое карты или использовать метапрограммирование , поскольку содержимое ISO3166_3
копируется в другие переменные в статическом инициализаторе
static {
ISO3166_3.each { k, v ->
COUNTRY_CODES_BY_NAME[v] = k
}
}
Мне нужен код, который модифицирует ISO3166_3
, чтобы он выполнялся до запуска этого статического инициализатора. Я не думаю, что есть какой-то способ добиться этого, поэтому у меня осталась только неприятная опция: скопировать весь CountryTagLib
в пользовательский taglib и изменить в нем ISO3166_3
. Мне также придется менять каждые <g:countrySelect>
, чтобы использовать вместо этого мой тег. Я действительно не хочу этого делать ...