Я использую JSF2.0 Mojarra 2.0.2.
У меня есть метод, который выходит из системы пользователя и помещает сообщение о выходе во флэш-память, перенаправляя на страницу входа в систему (в которой есть div, который печатает флэш-память). Однако, когда я по какой-то причине использую метод handleNavigation navigationHandlers, флэш-память не отображается. У меня есть похожий метод, который перенаправляет пользователя на страницу входа, если он не вошел в систему.
Если я выполняю навигацию по ссылке h: и просто вызываю метод выхода напрямую, флэш-память отображается как обычно, но если я использую метод handleNavigation (), флэш-память по какой-то причине очищается.
Код, о котором идет речь:
public void performLogout()
{
getFacesContext().getExternalContext().invalidateSession();
setCurrentUser(null);
getFlash().put("notice", "Successfully logged out.");
super.getFacesContext().getApplication().getNavigationHandler()
.handleNavigation(getFacesContext(), null, "login");
}
Есть ли какой-нибудь способ сохранить вспышку при такой навигации?
спасибо.
Редактировать: Я полагаю, что эта проблема связана с другой проблемой, связанной с тем, что флэш-память не сохраняется во время перенаправлений, когда страницы xhtml находятся в разных каталогах: http://java.net/jira/browse/JAVASERVERFACES-1635