私がやりたいのは、完了すると前のページに戻るJSFページを実装することです。これは@RequestScopedBeanを使用します。
viewDocument.xhtmlという元のページには次のものがあります。
<f:metadata>
<f:viewParam name="ID" value="#{viewDocument.id}" />
</f:metadata>
(bunch of stuff)
<h:link outcome="editThingy" value="Edit Thingy">
<f:param name="ID" value="#{viewDocument.doc.id}" />
<f:param name="Return" value="viewDocument" />
</h:link>
ターゲットページeditThingy.xhtmlには独自のバッキングBeanがあり、次のようになります。
<f:metadata>
<f:viewParam name="ID" value="#{editThingy.id}" />
<f:viewParam name="Return" value="#{editThingy.navReturn}" />
</f:metadata>
<h:form>
(bunch of stuff)
<p:commandButton value="Save" action="#{editThingy.save}" >
<f:param name="ID" value="#{editThingy.id}" />
</p:commandButton>
<p:commandButton value="Cancel" action="#{editThingy.navReturn}" >
<f:param name="ID" value="#{editThingy.id}" />
</p:commandButton>
</h:form>
アイデアは、両方のボタン(キャンセルまたは保存)がReturnリクエストパラメーターで示されたページに戻り、新しいページがIDリクエストパラメーターを取得するため、EditThingyが処理したのと同じレコードがプルアップされるというものです。
BZZZT!p:commandButtonはGETではなくPOSTを実行するため、f:paramを使用できません。ただし、p:buttonを使用しようとすると、バッキングBeanを呼び出す属性がありません。
私が欲しいものを実装する方法はありますか?