У меня есть собственный ExceptionHandlerWrapper для управления ViewExpiredException и другими ошибками.
Идея состоит в том, чтобы поймать ошибку, добавить какое-нибудь сообщение об ошибке и перенаправить (с перенаправлением, а не навигацией) на страницу индекса, где сообщение об ошибке будет отображаться.
fc.getExternalContext().getFlash().setKeepMessages(true);
Messages.addFlashError(null, "my message");
Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
flash.put("foo", "hello");
fc.getExternalContext().redirect("index.xhtml");
Однако флэш-сообщения не сохраняются (но в области флэш-памяти присутствует foo).
Это работало в мохарре, но я перешел на myfaces 2.2.4, и оно перестало работать. Любая идея? (также с использованием омнифейсов 1.8.1) Спасибо.
Flash#setRedirect()
? 19.09.2015