jp.terasoluna.fw.web.struts.form
インタフェース MultiFieldValidator
public interface MultiFieldValidator
複数のフィールドの相関入力チェックを行うインタフェース。
プレゼンテーション層でアクションフォームの複数フィールド間の依存関係による
入力チェックを実行する場合は、このインタフェースを実装したクラスを作成する。
validate(String, String[])
メソッドの第一引数には検証対象の値、
第二引数には依存するフィールドの値が配列で渡される。検証エラーの場合は
false
を返却すること。
検証対象のフィールドは null
または空文字で渡される場合がある
ので、注意が必要である。また、この検証ルールにはデフォルトの
エラーメッセージが存在しないため、validation.xml
には必ずメッセージの設定を行うこと。
※この検証ルールはJavaScriptでのチェックをサポートしていない。
アクションフォームのvalueフィールドの値が、value1フィールドの値以上、
value2フィールドの値以下であることを検証する場合、以下のように実装、設定を
行う。
public boolean validate(String value, String[] fields) {
int value0 = Integer.parseInt(value);
int value1 = Integer.parseInt(fields[0]);
int value2 = Integer.parseInt(fields[1]);
return (value1 <= value0 && value2 >= value0);
}
validation.xmlの設定例
<form name="/validateMultiField">
<field property="value" depends="multiField">
<msg key="errors.multiField"
name="multiField"/>
<arg key="label.value" position="0" />
<arg key="label.value1" position="1" />
<arg key="label.value2" position="2" />
<var>
<var-name>fields</var-name>
<var-value>value1,value2</var-value>
</var>
<var>
<var-name>multiFieldValidator</var-name>
<var-value>sample.SampleMultiFieldValidator</var-value>
</var>
</field>
</form>
メッセージリソースファイルの設定例
errors.multiField={0}は{1}から{2}の間の値を入力してください。
validate
boolean validate(String value,
String[] fields)
- 複数フィールドの相関入力チェックを実行する。
検証対象の値は第一引数で渡される。検証に必要な他のフィールドの
値は第二引数に配列として渡される。検証エラーの場合は false
を返却すること。
- パラメータ:
value
- 検証対象の値fields
- 検証に必要な他のフィールドの値配列
- 戻り値:
- エラーがなければ
true
Copyright © 2012. All Rights Reserved.