Как показать сообщение лиц на перенаправленной странице
Я предоставил интерфейс, который позволяет пользователям создавать учетные записи для приложения. В конце процесса метод регистрации выполняет процесс регистрации, добавляет сообщение об успехе на страницу и затем перемещает пользователя к центральной таблице данных, которая отображает всех пользователей системы.
У меня проблема в том, что сообщение об успехе никогда не отображается из-за перенаправления страницы. У меня не может быть wait() в методе, потому что сообщение JSF не будет отображаться, пока метод не завершится. В идеале я хочу, чтобы сообщение об успехе отображалось, а затем в указанное время страница перенаправлялась.
Как мне этого добиться?
2 ответа
Храните сообщение во флеш-области. Это переживет перенаправление.
context.addMessage(clientId, message);
externalContext.getFlash().setKeepMessages(true);
return "users.xhtml?faces-redirect=true";
Обратите внимание, что более старые версии Mojarra имеют некоторые специфические ошибки, связанные с областью применения Flash:
- проблема 1755 - сообщения в формате Flash живут дольше, чем следующий запрос - исправлено в 2.0.7 / 2.1.4
- проблема 2130 - Flash cookie позволяет использовать данные - исправлено в 2.1.24 / 2.2.1
- проблема 2140 - Flash cookie недоступен при перенаправлении на другой путь - исправлено в 2.1.14 / 2.2.0
- проблема 2906 - Flash cookie использует неверный путь для приложений в корне - исправлено в 2.1.24 / 2.2.1
- проблема 2959 - Flash иногда создает cookie версии 1, которые не работают в IE - исправлено в 2.1.25 / 2.2.2
- проблема 2977 - Flash вызывает NPE для устаревших файлов cookie после истечения срока действия сеанса - исправлено в 2.1.25 / 2.2.2
- проблема 2866 - Flash cookie не очищается при устаревании - исправлено в 2.1.27 / 2.2.5
Лучше всего обновить Mojarra до версии 2.1.27 / 2.2.5, чтобы это не повлияло на ваше приложение.
Работает, но если я установлю детали для сообщения, они не будут отображаться. В диалоговом окне сообщения о лицах отображается только SEVERITY_INFO и итоговый текст.