在我们的应用程序中,我们需要通过单击按钮来动态更改区域设置。我已经引用了以下链接,并且能够重新加载来自具有不同语言环境的资源包的标签。
Localization in JSF, how to remember selected locale per session instead of per request/view
但我的问题是我们必须根据语言环境调用SP来获取不同语言的数据。因此,当我重新加载页面时,数据不会从数据库加载。我已经添加了我到目前为止所写的代码。
在XHTML代码中:
<p:commandButton id="langbutton" value="#{language.lang}"
actionListener="#{language.langChanged}"
ajax="false" styleClass="loginlangbutton"/>
在Bean类中:
public String langChanged() {
FacesContext context = FacesContext.getCurrentInstance();
if (user != null && user.getLang().equalsIgnoreCase("E")) {
user.setLang("F");
lang = "English";
FacesContext.getCurrentInstance().getViewRoot()
.setLocale(Locale.FRENCH);
this.localeCode = Locale.FRENCH;
} else {
user.setLang("E");
lang = "Français";
FacesContext.getCurrentInstance().getViewRoot()
.setLocale(Locale.ENGLISH);
this.localeCode = Locale.ENGLISH;
}
UserBean uBean = (UserBean) context.getApplication()
.evaluateExpressionGet(context, "#{user}",
UserBean.class);
uBean.setLoginDtl(user);
return FacesContext.getCurrentInstance().getViewRoot().getViewId()
+ "?faces-redirect=true";
}