org.omnifaces.util.Faces#redirect と会話スコープ Bean に問題があります。
ボタンがあります
<p:commandButton action="#{navigationHandler.gotoCreateCar}"
actionListener="#{createHandler.init(searchHandler.search())}
value="#{msg.search}" update=":articleSearchForm">
<f:param name="cid" value="#{javax.enterprise.context.conversation.id}"/>
</p:commandButton>
これは、会話スコープ Bean: createHandler の初期化後に、同じ会話スコープ内で createCar ページへのナビゲーションを実行する必要があります。
NavigationHandler#gotoCreateCar では、Faces.redirect(createCarPage) を呼び出すだけです。
このようにすると、パラメーター cid が転送されず、会話が失われます。
faces-config.xml でナビゲーション ルールを定義すると、次のようになります。
<navigation-case>
<from-outcome>createCar</from-outcome>
<to-view-id>/portal/createCar.xhtml</to-view-id>
<redirect />
</navigation-case>
NavigationHandler#gotoCreateCar では、必要な結果を返すだけで、正常に動作します。
この 2 つのナビゲーション アプローチの違いの詳細をすべて理解していない可能性があります。誰かが問題を理解するのを手伝ってくれれば幸いです。
ありがとう!