0

我正在尝试使我的 Web 应用程序国际化,因此我正在使用 ResourceBundle 并使用以下方法动态更改语言环境:

FacesContext.getCurrentInstance()
                .getViewRoot().setLocale(locale);

起初效果很好。但我正在尝试使用 AJAX 调用来更新页面,并且程序使用第三方 servlet 来处理 AJAX 调用。所以现在当我的 bean 被调用时,它不断得到一个空异常(因为我不在 FacesServlet 中,我在其他一些 servlet 中)。

调用 ajax 的代码看起来像

<revit:button id="ajaxMe" type="button" 
  onClick="primeAjaxCall();localeCodeChanged();">Select Language</revit:button>
    <revit:ajax method="#{stringbean.localeCodeChanged}"
     call="localeCodeChanged" callback="ajaxCallback" postData="parameter" />

托管 bean 代码:

public AJAXResponse localeCodeChanged(Map<String, String[]> parameterMap, Map<String, String> headers)
{
    // read in the parameters to get the locale

    // how can I effectively call this without null pointer?
     FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
}

有任何想法吗?

4

0 回答 0