Faces Flow でリダイレクトしてみる
元ネタ:Faces Flowでリダイレクトできない… - Challenge Java EE !
動きをみると、リダイレクト というより navigationCase が上手く効いてない感じでした。
とりあえず色々試して動かしてみました。
ちなみにこれで何で動くのかまでは調べてません。
FlowDef.java
@Produces @FlowDefinition public Flow defineFlow(@FlowBuilderParameter FlowBuilder flowBuilder){ flowBuilder.initializer("#{flowBean.init()}"); flowBuilder.id("", firstFlowId); flowBuilder.viewNode(firstFlowId, "/firstFlow.xhtml").markAsStartNode(); flowBuilder.navigationCase() .fromViewId("/firstFlow.xhtml") .fromAction(secondFlowId) .toViewId("/secondFlow.xhtml") .redirect(); return flowBuilder.getFlow(); }
元の動き
修正後の動き
1個目のレスポンスヘッダー
302 返って、もいっかい POST で取りにいってるしリダイレクト出来てるはず。
flowBuilder.viewNode(secondFlowId, "/secondFlow.xhtml");
はあっても無くても動きましたが、あった方が行儀良いのかな?
navigationCase() .fromViewId .fromAction .toViewId
は全部指定しないとダメでした。
FacesFlow は面白いのですが、自分で試したところ
- Flow の開始画面が1個だけ
- Flow を抜けるケースを全て指定しないとダメ
等があり、ちょっと使いにくいなという感じ。
もうちょっと情報が出回ると良いなー。