我用于国际化JSF配置,我有一个Locale
中<p:selectOneMenu>
类的国家/地区列表,但是
我在更改页面语言时遇到<p:selectOneMenu>
中国家/地区列表重复值的问题
如何更正此问题?
private List<String> countriesList = new ArrayList<String>();
public void setCountriesList(List<String> countriesList) {
this.countriesList = countriesList;
}
public List<String> getCountriesList() {
String[] locales = Locale.getISOCountries();
for (String countryCode : locales) {
Locale obj = new Locale("", countryCode);
countriesList.add(obj.getDisplayCountry(Locale.ENGLISH));
}
Collections.sort(countriesList);
return countriesList;
}
答案 0 :(得分:0)
在没有看到更多代码的情况下我无法告诉我,但从我看到的情况来看,我的猜测如下:
每次更改语言时可能都会调用getCountriesList
,因为它会向列表countriesList
添加条目,这不是方法的本地,而是类成员,因此更长久,这些条目累积在该列表中。
尝试
ArrayList<List> countriesList = new ArrayList<String>();
在方法getCountriesList
的开头,以确保您正在处理局部变量。这就是我期望从名称遵循模式的方法中获得的行为&#34; getSomething&#34;。