Class ActionForm

Description

ActionFormクラス。

Located in /ActionForm.php (line 19)


	
			
Variable Summary
array $_actionForm
Method Summary
ActionForm ActionForm ()
mixed getAllNames ()
mixed getProperty (string $key)
void reset ()
void setProperty (string $key, mixed $value)
boolean validate (ActionView &$actionView)
Variables
array $_actionForm (line 27)

HTMLフォームの情報を保持する配列。

Methods
Constructor ActionForm (line 33)

ActionFormクラスのコンスタラクタ。

ActionForm ActionForm ()
getAllNames (line 83)

HTMLのクエリーパラメータの全ての変数名を取得。

HTMLのクエリーパラメータの全ての変数名を要素とする配列を返す。 クエリーパラメータがなければ、nullを返す。

  • return: HTMLフォーム情報の全ての名前を要素とする配列
  • final:
  • access: public
mixed getAllNames ()
getProperty (line 69)

キー値$keyに対応するHTMLフォーム情報を返す。

HTMLフォーム情報から、キー値$keyに対応する値を、 読み出し、戻り値とする。存在しなかった場合には、NULLを返す。

  • return: HTMLフォーム情報の名前$keyに対応する値
  • final:
  • access: public
mixed getProperty (string $key)
  • string $key: HTMLフォーム情報の名前
reset (line 149)

フォーム値をリセットする抽象メソッド。

今のところ、このメソッドをどのように利用したらいいのか、必要なのかが明確になっていません。 以下は、Strutsでの説明ですが、必要性がわかりません。

reset()メソッドはHTMLフォームのcheckboxのためにインプリメントされたものである。 checkboxは、チェックがついてない値は送信されない。 例えばsessionで複数の画面をまたいでチェックボックスを使う場合、 A,B,Cのcheckboxがある場合、画面1を表示した時はA,Bにチェックされているとする。 そこでAのチェックを外して画面2へとフォームを送信します。 ところが<input>タグはfalseのバリューを送信しないので、画面2のチェックボックスは アップデートされずA,B両方にチェックがついたままになる。 そこで、reset()メソッドを使って、このcheckboxをfalseにする必要が出てくる。 これがreset()メソッドの正式な使い方である。 reset()メソッドを使ってフォームのプリポピュレートの処理すべきではありません。 reset()メソッドをプリポピュレートなどに使わない方が良い理由として もしかしたら将来reset()メソッドがdeprecatedになるかもしれないと言われているからです。

ActionFormのresetメソッド ActionFormはstruts設定ファイルの中で設定したスコープに登録されます。 したがってsessionに登録された場合には、同一セッション中の同じHTMLフォームにおいては 同じActionFormインスタンスが使用される事になります。 またHTMLフォームの内、チェックボックスは選択されていない状態でパラメータが送信されません。 したがって以下のような不具合が発生してしまいます。

あるHTMLフォームのチェックボックスを選択し、HTTPリクエストをサーバへ送る。 チェックボックスに該当するActionFormのプロパティ(boolean型)にtrueが設定される。 再び1と同じHTMLフォームにおいて、今度はチェックボックスの選択を外して、 HTTPリクエストをサーバへ送る。 ActionFormはセッションに登録されているため、 2と同じインスタンスが使用される。またチェックボックスに該当するパラメータは送信されないため、 該当するプロパティのsetterメソッドは呼ばれず、2で設定した値(true)がそのまま残る。 チェックボックスを使用する場合には上記のような不具合が生じるため、 ActionFormにはプロパティを初期化するためのメソッド「reset」が用意されています。 resetメソッドはHTTPリクエストからパラメータ値を読み取って設定する前に必ず呼ばれるものです。 ActionFormで何らかの初期化をそのタイミングで行いたい場合には、 resetメソッドをオーバーライドします。resetメソッドの中で初期化を行う事により、 チェックボックスを使用することにより生じる不具合を防ぐ事ができます。

  • abstract:
  • access: public
void reset ()
setProperty (line 53)

HTMLフォーム情報に、キー値$keyで、値$valueを設定する。

既に、同一キー値がある場合には、上書きし、無い場合には追加する。

  • final:
  • access: public
void setProperty (string $key, mixed $value)
  • string $key: HTMLフォーム情報の名前
  • mixed $value: HTMLフォーム情報の名前に対応する値
validate (line 103)

フォーム情報の有効性をチェックする抽象メソッド。

フォーム情報が有効であれば true 、無効であれば false を返す。

  • return: フォーム情報が有効であれば true 、無効であれば false を返す。
  • abstract:
  • access: public
boolean validate (ActionView &$actionView)
  • ActionView &$actionView: 出力を保持するActionViewオブジェクト

Documentation generated on Tue, 3 May 2005 22:52:00 +0900 by phpDocumentor 1.3.0RC3