更改JSF中的区域设置并从数据库重新加载数据

时间:2017-05-18 09:09:44

标签: jsf-2

在我们的应用程序中,我们需要通过单击按钮来动态更改区域设置。我已经引用了以下链接,并且能够重新加载来自具有不同语言环境的资源包的标签。

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";

    } 

0 个答案:

没有答案