Есть страница с формой авторизации, после корректного заполнения пары login-password переходим на главную страницу сайта и отображаем информационное сообщение, что авторизация прошла успешно. Нужно заметить, что переход на главную страницу происходит redirect запросом (каким способом происходит редирект
welcome?faces-redirect=true
или
<redirect/>
не имеет значение).
Сообщение помещается в
FacesContext
следующим образом:
FacesContext facesContext = FacesContext.getCurrentInstance();<br>
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, message, null);<br>
facesContext.addMessage(null, facesMessage);<br>
Проблема в том, что после редиректа
<h:messages />
не показывает информационное сообщение. В то же время, если редирект не делать, а ограничиться одним POST запросом, то информационное сообщение отображается.
Пробовал активировать
FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true)<br>
, но этот механизм помогает отобразить сообщение, только на текущей странице, даже если мы на неё вернёмся позже, но на другой странице (по другому url-адресу)
<h:messages />
не может достать сообщение.
Соответственно,
вопрос — как отобразить информационное сообщение после редиректа?
Может где-нибудь нужно указать правильный scope для
<h:messages />
или
FacesMessage
?
Проект крутиться на Glassfish 3, Java EE 6, JSF 2.