@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.
  • Вопрос задан
  • 3392 просмотра
Решения вопроса 1
@exaide
воспользоваться костылём
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект
25 апр. 2024, в 10:25
2000 руб./за проект