Я использую метод ExternalContext.redirect(String);для перенаправления пользователя на другую страницу:
FacesContext.getCurrentInstance().addMessage(new FacesMessage("Bla bla bla..."));
FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true);
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
ec.redirect(ec.getRequestContextPath() + "/scenario.xhtml");
Как упомянул Мэтт Хэнди в своем ответе, я использовал Flash.setKeepMessages(true);, но, похоже, это не работает с ExternalContext.redirect (хотя это работает, когда я перенаправляю, возвращая имя страницы из метода действия bean-компонента.)
Теперь, как я могу добавить FacesMessage, чтобы что он виден на перенаправленной странице (scenario.xhtml)?