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";
}
これは単なるテストですが、実際に使用したいオブジェクトはもっと複雑です。
フラッシュを使用した2ページ目は次のとおりです。
<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>
この場合、フラッシュスコープは正常に機能し、メッセージが表示されます。
しかし、ナビゲーションケースにリダイレクトを追加すると、フラッシュマップ内のオブジェクトが消えてしまいます。
ナビゲーションルールでリダイレクトを使用できない理由がわかりません(フラッシュスコープの目標であると信じていました)。
私のコードに何か問題がある可能性があります。
誰かが私を助けることができますか?
ありがとう