Как обойти 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);
}
Есть идеи?