public class ResetterImpl extends 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>
<action path="/resetAction">
<property-reset name="field1" />
<property-reset name="field2" select="true" />
</action>
</reset>
上記の設定の場合、/resetAction.do が呼ばれると
リクエストパラメータがフォームに反映される前にフォームの
指定のフィールドがクリアされる。
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を指定することで、
範囲指定リセットが可能である。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,
Map<String,Object> propMap,
javax.servlet.http.HttpServletRequest request)
選択フィールドのリセットを行う。
|
protected void |
resetValue(FormEx form,
Map.Entry<String,Object> entry)
アクションフォームの指定されたプロパティをリセットする。
|
public void reset(FormEx form, org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)
reset
インタフェース内 Resetter
form
- アクションフォームmapping
- マッピング情報request
- リクエスト情報ResetterPlugIn
,
ActionReset
,
FieldReset
,
ResetterResources
,
FormEx
,
DynaValidatorActionFormEx
,
ValidatorActionFormEx
protected void resetValue(FormEx form, Map.Entry<String,Object> entry)
form
- 現在のリクエストで使用するアクションフォームentry
- リセット対象のプロパティ名と現在の値のエントリjp.terasoluna.fw.util.PropertyAccessException
- プロパティの値設定に失敗した場合protected ResetterResources getResetterResources(javax.servlet.http.HttpServletRequest request)
request
- リクエスト情報ActionReset
,
FieldReset
protected ActionReset getActionReset(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)
mapping
- 現在のリクエストのマッピング情報request
- リクエスト情報FieldReset
,
ResetterResources
protected void resetSelectField(FormEx form, Map<String,Object> propMap, javax.servlet.http.HttpServletRequest request)
form
- 現在のリクエストで使用するアクションフォームpropMap
- プロパティ名と現在の値のMaprequest
- リクエスト情報ActionReset
,
FieldReset
,
ResetterResources
Copyright © 2016. All Rights Reserved.