Сведения о вопросе

Electro Full

15:37, 29th August, 2020

Теги

Java   JSF   Java   EE    

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

Просмотров: 268   Ответов: 1

Есть страница с формой авторизации, после корректного заполнения пары login-password переходим на главную страницу сайта и отображаем информационное сообщение, что авторизация прошла успешно. Нужно заметить, что переход на главную страницу происходит redirect запросом (каким способом происходит редирект welcome?faces-redirect=true или <redirect/> не имеет значение).

Сообщение помещается в FacesContext следующим образом:
FacesContext facesContext = FacesContext.getCurrentInstance();
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, message, null);
facesContext.addMessage(null, facesMessage);

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

Пробовал активировать
FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true)

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

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

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

Проект крутиться на Glassfish 3, Java EE 6, JSF 2.



  Сведения об ответе

crush

00:02, 22nd August, 2020

воспользоваться костылём


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться