Teeda Extensionは, ブラウザからのリクエストに応じてページクラスのメソッドを呼び出します. このメソッドをライフサイクルメソッドと呼びます.
ライフサイクルメソッドには次のものがあります.
initialize()
do~()
prerender()
initialize()
メソッドは, 画面が最初に表示されるときや, 他の画面から遷移 (REDIRECT)
してきたときに呼び出されるメソッドです.
initialize()
メソッドは次の規約に従います.
public
initialize
Class
,
String
または
void
のいずれか
initialize()
メソッドは,
ポストバック
では呼び出されません.
do~()
メソッドは, フォームがサブミットされた場合 (
ポストバック
) に呼び出されるメソッドです.
do~()
メソッドは次の規約に従います.
public
do
で始まる
Class
,
String
または
void
のいずれか
do~()
メソッドは, サブミットボタンに対応付けられ, 対応するボタンが押された場合のみ呼び出されます (
詳細
).
do~()
メソッドは, ポストバックでない場合や, バリデーションでエラーがあった場合は呼び出されません.
prerender()
メソッドは, 画面が描画される直前に呼び出されるメソッドです.
prerender()
メソッドは次の規約に従います.
public
prerender
Class
,
String
または
void
のいずれか
prerender()
メソッドは, 画面遷移 (リダイレクト) する場合は呼び出されません.
Teeda Extensionでは, ブラウザから受け取ったリクエストの基本的な処理パターンが4つあります.
リクエストパターン ごとに, どのライフサイクルメソッドが呼び出されるかを説明します.
初期表示では,
initialize()
および
prerender()
メソッドが呼び出されます.
ポストバック (自画面表示) では,
do~()
メソッドおよび
prerender()
メソッドが呼び出されます.
バリデーションでエラーがあった場合は
prerender()
メソッドだけが呼び出されます.
ポストバック (リダイレクト) では,
do~()
メソッドのみが呼び出されます.
do~()
メソッドの戻り値で指定された画面へリダイレクトします.
バリデーションでエラーがあった場合は ポストバック(自画面表示) になります.
リダイレクト表示では,
initialize()
および
prerender()
メソッドが呼び出されます.
ライフサイクルメソッドは,戻り値型を
Class
または
String
型にすることができます (間違いにくさやリファクタリングのしやすさから
Class
型を推奨します).
次画面のページクラスまたはそのコンポーネント名を戻り値とすることで, その画面に遷移 (リダイレクト) します.
戻り値が
null
だと画面遷移 (リダイレクト) しないで直接自画面を表示します.
戻り値をそのページクラス自身 (またはそのコンポーネント名) にすると, リダイレクトして同じページを表示します. この場合は遷移先が現在の画面と同じというだけで, 画面遷移として扱われます.
画面遷移 (リダイレクト) しない場合は戻り値の型を
void
にすることもできます.
JSFのライフサイクルと, ページクラスのライフサイクルメソッドおよびsetter/getterメソッド呼び出しの関係は, 以下のようになります.