読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

Faces Flowで即時にフローを開始したい

JSF 画面遷移

今かかわっている案件、画面数は少ないのですが、業務的には画面間を行き来することが多いような画面となっています(なら画面分けるのやめてSPAに、というのは置いておいて…)

開発はJava EE 7でJSFを使うのですが、ViewScopeだとちょっと微妙で、候補としてはSessionScope、ConversationScope、そしてJSF 2.2で入ったFlowScopeのいずれかかなと。

Conversationはあまり良い思い出がないので、FlowScopeことFaces Flowを初めて実戦投入してみようかな…と思っています。

Faces Flowについては2年前のJava EE Advent Calendar 2013で書いてました。

で、今回のシステムは、他のベンダさんが提供してるWebシステムから呼びされるもので、呼び出された瞬間にフローを開始したいです(下図)。

f:id:kikutaro777:20150209225201j:plain

スタブのページ用意して、URLリンクで普通にフローを呼び出してみたのですが、フローの開始にはなりませんでした。

色々なサンプルをみたのですが、ほとんどがindex.xhtmlのようなページがあって、そこからoutcome属性でフローに入って…という流れのものばかり…。

悩みで近いのは次の2つでした。


jsf 2.2 - How to enter a JSF 2.2 flow with faces-redirect - Stack Overflow


jsf 2 - Starting faces flow - Stack Overflow

2つ目のコードをみると、ConfigurableNavigationHandlerのperformNavigation()にてoutcomeと同じハンドリングができるようなので、1枚ダミーのページをはさんでリダイレクトする形に……(下図)。

f:id:kikutaro777:20150209231417j:plain

これでフロー開始ができました。が、なんかダサい…。良いやり方ないのかな。

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村