jsf locales落后1步,用htmlpanelgrid(因为auf恢复视图没有更新)

时间:2012-02-29 15:32:51

标签: jsf view restore

我正在使用htmlpanelgrid来构建我的动态导航。 该页面包含3个用于更改语言的命令链接(带有图像)。 如果我点击图像(commandlink)来更改语言,则使用新语言导航总是落后一步。

导航将在阶段1(恢复视图)上构建,并且在第5阶段设置新语言。 意味着,如果我更改语言,则在设置新值之前使用旧语言构建htmlpanelgrid。 怎么摆脱那个? 谢谢!

1 个答案:

答案 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";
}

另见: