У меня есть недоразумение с использованием флэш-области в jsf 2. Я хочу поместить объект во флэш-карту во время моего действия и показать этот объект на следующей странице. Вот мое действие (вызов h: commandLink):
public String showDetail(PersonneDTO personne) {
MessageFlashBean message = new MessageFlashBean();
message.addMessage("test");
FacesContext.getCurrentInstance().getExternalContext().getFlash()
.put("test", message);
return "showDetail";
}
Это просто тест, но реальный объект, который я хочу использовать, более сложный.
Вот вторая страница со вспышкой:
<ui:fragment rendered="#{flash.test != null and flash.test.hasMessage()}" >
<ui:repeat var="message" value="#{flash.test.messages}">
#{message}
</ui:repeat>
</ui:fragment>
Вот навигация (и вот моя проблема:)):
<navigation-rule>
<from-view-id>/index.xhtml</from-view-id>
<navigation-case>
<from-outcome>showDetail</from-outcome>
<to-view-id>/private/showDetail.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
В этом случае область флэш-памяти работает нормально, и появляется мое сообщение.
Но если я добавлю перенаправление в случае навигации, мой объект на карте флэш исчезнет.
Я не понимаю, почему я не могу использовать перенаправление в правиле навигации (я полагал, что это была цель флэш-области).
Может быть что-то не так в моем коде.
Кто-нибудь может мне помочь?
Спасибо