@Drevlyanin

JSF 2: Как отобразить информационное сообщение после редиректа?

Есть страница с формой авторизации, после корректного заполнения пары 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>


Проблема в том, что после редиректа &lt;h:messages /&gt; не показывает информационное сообщение. В то же время, если редирект не делать, а ограничиться одним POST запросом, то информационное сообщение отображается.



Пробовал активировать

FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true)<br>


, но этот механизм помогает отобразить сообщение, только на текущей странице, даже если мы на неё вернёмся позже, но на другой странице (по другому url-адресу) &lt;h:messages /&gt; не может достать сообщение.



Соответственно, вопрос — как отобразить информационное сообщение после редиректа?



Может где-нибудь нужно указать правильный scope для &lt;h:messages /&gt; или FacesMessage?



Проект крутиться на Glassfish 3, Java EE 6, JSF 2.
  • Вопрос задан
  • 3397 просмотров
Решения вопроса 1
@exaide
воспользоваться костылём
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы