TOPシステム開発> JSFのライフサイクル
まるごとサーバサイドJava
JDeveloperで学ぶJSF入門

第3回:JSFのライフサイクルとStrutsとの比較

著者:WINGSプロジェクト  佐藤治夫(株式会社ビープラウド)、
小泉守義

監修:山田祥寛   2006/7/27
1   2  次のページ
JSFのライフサイクル

   一般的なWebアプリケーションでは、クライアントからのHTTPリクエストを受信してから、入力値の受付、入力値の検証、データ処理、画面生成など、一連のフローが存在します。JSFでは、この処理順序をライフサイクルとして定義しています。それぞれの処理単位は「フェーズ」と呼ばれます。JSFを正しく使いこなしていくうえで、このライフサイクルの知識は、必要不可欠なものです。

   ライフサイクルは6つのフェーズからなり、次の順で実行されます(図1)。
JSFのライフサイクル
図1:JSFのライフサイクル


1. Restore Viewフェーズ

   ページのコンポーネントのビュー(UIViewRoot)を作り上げて、FacesContextに格納します。初めてのアクセスの場合は空のビューが生成されます。JSFページからの要求の場合は、クライアントもしくはサーバーにビューの状態が格納されているので、それを用いてビューが復元(restore)されます。


2. Apply Request Valueフェーズ

   クライアントからの送信値が、Restore Viewフェーズで復元(restore)されたコンポーネントに反映されます。具体的にはビューの各コンポーネントに実装されたdecode()メソッドが呼び出され、各コンポーネントに値が反映されます。


3. Process Validationフェーズ

   コンポーネントに登録されたすべてのバリデータが実行されます。


4. Update Model Valueフェーズ

   コンポーネントの値がマネージドBeanに反映されます。


5. Invoke Applicationフェーズ

   ボタンやリンクに関連づけられたアクションイベントが処理されます。


6. Renderer Responseフェーズ

   各コンポーネントのencode系メソッドが呼び出されて、レスポンスが生成されます。レンダリングが終了するとコンポーネントの状態がクライアント、もしくはサーバーに保存されます。

1   2  次のページ

著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、小泉守義 監修:山田祥寛
著者プロフィール
著者:WINGSプロジェクト 佐藤治夫(株式会社ビープラウド)、
小泉守義
監修:山田祥寛

WINGSプロジェクトは、有限会社WINGSプロジェクト(代表取締役山田祥寛)が運営するライティング・チーム。海外記事の翻訳から、主にサーバサイド分野の書籍/雑誌/Web記事の執筆、講演、アプリケーション開発などを幅広く手がける。2006年7月時点での登録メンバーは20名で、現在も一緒に執筆をできる有志を募集中。執筆に興味のある方は、どしどし応募いただきたい。


INDEX
第3回:JSFのライフサイクルとStrutsとの比較
JSFのライフサイクル
  Strutsとの比較