本書は、JSFフレームワークがどんな流れで処理を進めていくのかがよくわかるので非常に初心者向けだと思います。実際、僕が最初にJSFをやることになって、いろいろと書籍を見た中では、フレームワークの流れが一番よくわかる本だと思いました。
JSFにはライフサイクルというものがあり、6つのフェーズからできています。この6つのフェーズ(Viewの復元・リクエスト値の適用・入力値の検証・モデル値の更新・アプリケーションロジックの呼び出し・レスポンスレンダリング)のそれぞれに関してフレームワークがどのように処理を進めていくのかを、丁寧に解説しています。
JSFは、これから使われてくる技術であり、これからのWebアプリケーション開発を変えてしまうものだと思っているので、本書を元に流れを理解しておくと、今後のJSF旋風に飲み込まれた時に役立つと思います。
特徴
本書は、次世代WebアプリケーションフレームワークであるJava Server Facesについて解説しているものです。この記事を書いている現在では、まだJSFに関する書籍が4, 5冊くらいしかありません。その中でもっともJSFの流れがわかる本だと思っています。
本書が他のJSF解説書と比べていいと思ったのは、フレームワークのライフサイクルに関して詳しく説明してある本だったからです。ライフサイクルには6つのフェーズがあり、それぞれ
- Viewの復元
- リクエスト値の適用
- 入力値の検証
- モデル値の更新
- アプリケーションロジックの呼び出し
- レスポンスレンダリング
に分かれています。
一つ一つのフェーズで、JSFフレームワークがどんなことをやっているのか、どんなことをするのかという根本の解説が一番よくわかるのが本書でした。詳しい解説でおなじみのオライリーからも『JavaServer Faces完全ガイド』という本が出版されていますが、本書の方が図を使っていてわかりやすく、日本人著者が書いているのではるかにわかりやすいです。
サンプルアプリケーションも載っていて、一通り本書を読みながらアプリケーションを作れば、JSFの流れは完全に理解できるかと思います。本書を読んだあと、オライリーの『JavaServer Faces完全ガイド』を読むとさらに理解が深まると思います。
覚書き
javax.faces.model.SelectItem を使ったときのプロパティの型
selectOneMenuなどのコンポーネントを使った場合に使用する「selectItem、selectItems」タグを使用するときに使える javax.faces.model.SelectItem というクラスには setValue というセッターメソッドがある。このメソッドの引数は Object 型になっていて、ここでセットした型と同じ型でBeanのプロパティを作らないと、Convert Invalid となってしまうので注意。
アクションでエラーが起こった場合に画面遷移しないようにするには
アクションやリスナーメソッドでエラーが起こった場合に、画面遷移をしたくない場合がある。そんなときは、戻りの ViewID を null にしてやるといい。具体的には、アクションメソッドの戻り値を null にする。
参考
- 安くてボリュームも少なく、JSFって何ぞや?という人向けの雑誌タイプの書籍です。
- 解説本というよりはリファレンス的な意味合いが強いです。
- オライリーから詳説本でました。日本語訳はちょっとな感じですが、さすがに詳しいです。