ひがやすを技術ブログ

電通国際情報サービスのプログラマ

戻るボタン

MyFacesの実装は、ブラウザの戻るボタンが考慮されてないですね。
例えば、一覧画面でリンクをクリックして編集画面に行き、戻るボタンで一覧画面に戻ったとします。
そこで、リンクをクリック(クリック1)すると、ユーザはもちろん編集画面に行くことを期待します。でも、MyFacesはそうならない。もう一度一覧画面が表示され、二度目のクリック(クリック2)でやっと編集画面に行きます。なんでやねん。
MyFacesでは最初に画面に遷移したときは、表示だけで、リクエストの処理をしません。同じ画面が連続して表示されるときに、リクエストを処理するようになっています。
そのため、クリック1では、リクエストが処理されず、単に一覧画面が表示されるだけになってしまうのです。
この対応はかなり大変で、StateManagerやLifecycleも自前で実装する羽目になりました。
オリジナルのソースに手を入れなくても、動きを変えられるので、その点JSFはよく出来ていると思います。
他のJSFの実装を試せる方は、上記の動作を試してみてはいかがでしょうか。
イントラのWebシステムだと戻るボタンを隠して、アプリで戻るボタンを用意するのもアリだと思いますが、B2Cじゃ許されない可能性があります。
他にもいろいろ苦労したんですけど、書く気力が...
S2JSFのサンプルは、苦労した甲斐があって、ようやく思うように動くようになりました。1つのページで、新規と編集を兼用するなどの実戦的な機能も実装されてます。この部分はEA2、EA4で実装したけどうまく動かなくてリリースしなかったところです。
これまで、MyFacesが思うように動かなかった部分は、全部理由がわかったので、すっきりしました。JSFに対する不安感もなくなったので、自信を持って実戦投入できます。実はもうS2JSFを実戦投入する案件が始まっているので、ほっと一安心。
たぶん、明日EA5を出します。レイアウトの継承以外は、実装されてます。
希望的な予定では、デブサミに間に合わせて継承機能を実装し、RC1としてリリース。
その後、タイミングを見て正式リリースしたいと思います。