我正在使用htmlpanelgrid来构建我的动态导航。 该页面包含3个用于更改语言的命令链接(带有图像)。 如果我点击图像(commandlink)来更改语言,则使用新语言导航总是落后一步。
导航将在阶段1(恢复视图)上构建,并且在第5阶段设置新语言。 意味着,如果我更改语言,则在设置新值之前使用旧语言构建htmlpanelgrid。 怎么摆脱那个? 谢谢!
答案 0 :(得分:0)
您需要在操作方法期间在UIViewRoot
上明确设置区域设置。
public void changeLocaleAction() {
locale = new Locale(language);
FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
}
否则您需要将重定向发送回同一视图。
public String changeLocaleAction() {
locale = new Locale(language);
return FacesContext.getCurrentInstance().getViewRoot().getViewId() + "?faces-redirect=true";
}