jp.terasoluna.fw.web.struts.reset
クラス ResetterImpl

java.lang.Object
  上位を拡張 jp.terasoluna.fw.web.struts.reset.ResetterImpl
すべての実装されたインタフェース:
Resetter

public class ResetterImpl
extends java.lang.Object
implements Resetter

デフォルトのリセット実装クラス。

TERASOLUNAがデフォルトで用意している Resetter 実装クラス。
このクラスは ResetterPlugIn を利用し、XML ファイルに設定された情報を元に フォームフィールドのリセットを行う。
アクションフォームのreset()メソッドを拡張している為、リセット処理は Strutsのライフサイクル内のみで実行される。リセット処理はチェックボックスや ラジオボタンの値を持つプロパティの初期化を目的として提供される為、 その他の目的での利用については動作は保証しない。
※単純にフィールドを初期化したい場合は、ビジネスロジックなどを通し、 モデルの値変更として実行すること。Strutsのライフサイクルではリセット実行後、 リクエストパラメータでそのプロパティを再度書き換える。

リセット処理は対象のフィールドの値がnullの場合、型判定ができない為、 nullのまま、値変更を実行しない。null以外のObject型フィールドはnull値に、 boolean型はfalseに、その他のプリミティブ型フィールドは0に初期化を行う。 DynaValidatorActionFormExを使用する場合、 struts-config.xmlに記述した初期値にはリセットされないので、注意すること。
リセット機能として、 『通常のリセット処理』 及び 『指定範囲リセット機能』 を持ち、指定範囲リセット機能では、配列又は List オブジェクトの 任意の範囲のみをリセットする事が可能。
リセットする任意の範囲はリクエストパラメータに "startIndex", "endIndex"をキーとして格納しておく必要がある。

使用方法
フォームリセット定義ファイル(reset.xml)にはアクションごとに リセット対象フィールドを設定する。
  <reset>
    <action path="/resetAction">
      <property-reset name="field1" />
      <property-reset name="field2" select="true" />
    </action>
  </reset>
 
上記の設定の場合、/resetAction.do が呼ばれると リクエストパラメータがフォームに反映される前にフォームの 指定のフィールドがクリアされる。
クリア対象のフィールドは property-reset タグの name 属性で指定された、 "field1" と "field2" となる。
"field2" については、 select 属性が true となっている為、 リクエストパラメタの"startIndex" 〜 "endIndex" で指定されたインデックス間のフィールド値のみが null に初期化される。
また、本クラスはネストしたプロパティのリセットに対応している。 アクションフォームのネストしたプロパティをリセットする場合は、 プロパティ名を「.」で連結した複合参照式を使用すること。 以下に、ネストしたプロパティをリセットする場合の例を示す。

ネストしたプロパティのリセット方法
 public class MyActionForm extends ValidatorActionFormEx {
     private List rows = null;
     public void setRows(List rows) {
         this.rows = rows;
     }
     public List getRows() {
         return this.rows;
     }
     private Map map = new HashMap();
     //以下省略
 }
 public class Row {
     private String value = null;
     public void setValue(String value) {
         this.value = value;
     }
     public String getValue() {
         return this.value;
     }
 }
 
上記のMyActionFormが持つRowクラスのリストの各valueプロパティ、 Map型のmapプロパティで「field」というキー名の値 をリセットする場合は以下のようにreset.xmlに記述する。
  <reset>
    <action path="/resetAction">
      <property-reset name="rows.value" />
      <property-reset name="map(field)" />
    </action>
  </reset>
 
複合参照式はプロパティ名のみを記述する。要素が配列やListの場合は フレームワークが自動的に認識し、全ての要素をリセットする。 通常のプロパティ同様、select属性にtrueを指定することで、 範囲指定リセットが可能である。

関連項目:
ResetterPlugIn, ActionReset, FieldReset, ResetterResources, FormEx, DynaValidatorActionFormEx, ValidatorActionFormEx

フィールドの概要
private static org.apache.commons.logging.Log log
          ログクラス
 
インタフェース jp.terasoluna.fw.web.struts.reset.Resetter から継承されたフィールド
RESETTER_KEY
 
コンストラクタの概要
ResetterImpl()
           
 
メソッドの概要
protected  ActionReset getActionReset(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)
          アクションパスに紐づいた ActionReset のインスタンスを取得する。
protected  ResetterResources getResetterResources(javax.servlet.http.HttpServletRequest request)
          ResetterResources のインスタンスを取得する。
 void reset(FormEx form, org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)
          フォームのフィールド値のリセットを行う。
protected  void resetSelectField(FormEx form, java.util.Map<java.lang.String,java.lang.Object> propMap, javax.servlet.http.HttpServletRequest request)
          選択フィールドのリセットを行う。
protected  void resetValue(FormEx form, java.util.Map.Entry<java.lang.String,java.lang.Object> entry)
          アクションフォームの指定されたプロパティをリセットする。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static org.apache.commons.logging.Log log
ログクラス

コンストラクタの詳細

ResetterImpl

public ResetterImpl()
メソッドの詳細

reset

public void reset(FormEx form,
                  org.apache.struts.action.ActionMapping mapping,
                  javax.servlet.http.HttpServletRequest request)
フォームのフィールド値のリセットを行う。

定義:
インタフェース Resetter 内の reset
パラメータ:
form - アクションフォーム
mapping - マッピング情報
request - リクエスト情報
関連項目:
ResetterPlugIn, ActionReset, FieldReset, ResetterResources, FormEx, DynaValidatorActionFormEx, ValidatorActionFormEx

resetValue

protected void resetValue(FormEx form,
                          java.util.Map.Entry<java.lang.String,java.lang.Object> entry)
アクションフォームの指定されたプロパティをリセットする。 プロパティの型がboolean型、Boolean型の場合falseを設定する。 その他のプリミティブ型およびそのラッパー型の場合は、0を設定する。 プロパティの型がラッパー型以外のObject型の場合はnullを設定する。
尚、引数のentryにはnullが渡されることはない。

パラメータ:
form - 現在のリクエストで使用するアクションフォーム
entry - リセット対象のプロパティ名と現在の値のエントリ
例外:
PropertyAccessException - プロパティの値設定に失敗した場合

getResetterResources

protected ResetterResources getResetterResources(javax.servlet.http.HttpServletRequest request)
ResetterResources のインスタンスを取得する。

パラメータ:
request - リクエスト情報
戻り値:
ResetterResources インスタンス
関連項目:
ActionReset, FieldReset

getActionReset

protected ActionReset getActionReset(org.apache.struts.action.ActionMapping mapping,
                                     javax.servlet.http.HttpServletRequest request)
アクションパスに紐づいた ActionReset のインスタンスを取得する。

パラメータ:
mapping - 現在のリクエストのマッピング情報
request - リクエスト情報
戻り値:
ActionReset のインスタンス
関連項目:
FieldReset, ResetterResources

resetSelectField

protected void resetSelectField(FormEx form,
                                java.util.Map<java.lang.String,java.lang.Object> propMap,
                                javax.servlet.http.HttpServletRequest request)
選択フィールドのリセットを行う。 select 属性に true が設定されていたときは リクエストパラメタの "startIndex" 〜 "endIndex" で指定されたインデックス間のフィールド値を null に初期化する。
リクエストパラメタに "startIndex", "endIndex" が含まれていなければ全ての要素のリセットを行う。
また、フィールド値の型が配列型、List 型で宣言されている場合は、 通常のリセット処理を行う。

パラメータ:
form - 現在のリクエストで使用するアクションフォーム
propMap - プロパティ名と現在の値のMap
request - リクエスト情報
関連項目:
ActionReset, FieldReset, ResetterResources