2008年10月8日水曜日

Teedaの初期化(initialize)メソッドと描画前(prerender)メソッドの使い分け

スズキです。

この辺、実は、自分の中でもあいまいなので、
情報のまとめとして。(振る舞いの違いはわかるんだけど...)

まずは各メソッドの説明です。

▼初期化(initialize)メソッド
http://teeda.seasar.org/ja/extension_features.html#initialize

▼描画前(prerender)メソッド
http://teeda.seasar.org/ja/extension_features.html#prerender

簡単に言うとinitializeはポストバック時によばれず、
prerenderはとにかく呼ばれるという認識でいいのかな?

ちなみに"ポストバック"とはPOST先が同一のページである事です。
http://teeda.seasar.org/ja/extension_features.html#postback

次に、下記サイトへのkoichikさんのコメントに
使い分けに関することが書いてありました。
http://d.hatena.ne.jp/atsumaru/20080617/1213717396

> 他の画面から遷移してきたときに、DB から読み込んで
> ポストバックではそれを引き継ぐという場合は、initialize()、
> 描画の度に、DB から読み込み直す場合は、prerender()、
> のように使い分けてください。

で結局、何が言いたいか?というと、
フォームの初期化処理をinitializeに書けば、
入力値不正でポストバックしたときにinitializeは呼ばれず、
再初期化もされず、ユーザーが入力した値が残ります
ってことです。

今回の文章が支離滅裂すぎだなー...

--
http://suz-lab.blogspot.com/

0 コメント: