Как обойти FacesContext, будучи нулевым в отдельном сервлете - JSF

Я пытаюсь интернационализировать свое веб-приложение, поэтому я использую ResourceBundle и динамически меняю локаль, используя:

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

Который сначала работал нормально. Но я пытаюсь использовать вызов AJAX для обновления страницы, и программа использует сторонний сервлет для обработки вызовов AJAX. Так что теперь, когда мой бин вызывается, он получает нулевое исключение (так как я не в FacesServlet, я в каком-то другом сервлете).

Код для вызова 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" />

Код управляемого компонента:

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);
}

Есть идеи?

0 ответов

Другие вопросы по тегам