|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.terasoluna.fw.validation.FieldChecks
public class FieldChecks
TERASOLUNAの入力チェック機能で共通に使用される検証ルールクラス。 このクラスが提供する検証ルールとしては、以下のものがある。
このクラスではStrutsのValidWhenを利用した入力チェックメソッドを サポートしていない。相関チェックを行なう場合、各フレームワークで 別途、相関チェックを行う仕組みを用意すること。
必須チェック以外のチェックルールでは、 半角スペースのみの文字列が入力値として渡されてきた場合、エラーと判定されない。 エラーとする場合は必須チェックと組み合わせるか、 半角スペースのチェックを追加すること。
この検証ルールクラスを利用するためには、アクションごとに検証内容を記述した バリデーション定義ファイル(validation.xml) を作成する必要がある。
<formset>
・・・
<!-- 単体のフィールド検証 -->
<form name="testBean">
<field property="field"
depends="required,alphaNumericString,maxlength">
<arg key="testBean.field" position="0"/>
<arg key="${var:maxlength}" position="1"/>
<var>
<var-name>maxlength</var-name>
<var-value>10</var-value>
</var>
</field>
</form>
・・・
</formset>
このクラスの
validateArraysIndex(
Object, ValidatorAction, Field, ValidationErrors)
メソッドを使用することにより、配列・コレクション型の入力チェックが
可能になる。
例えば、fieldsという配列のプロパティを持つbeanインスタンスに対して、 fields要素に対する必須チェックを行なう場合、validation.xmlのプロパティ名に fieldsと記述する。 実行時には、システム側でfieldsプロパティの配列を0番目から順に走査して、 全要素に対してチェックメソッドを実行する。 実行するルール(validation.xmlのdepends指定)は、ルール名に”Array”を 加えた名前を指定する。
配列・コレクション型の一覧検証に対応するルールは以下の通りである。requiredArrayminLengthArraymaxLengthArraymaskArraybyteArrayshortArrayintegerArraylongArrayfloatArraydoubleArraydateArrayintRangeArraydoubleRangeArrayfloatRangeArraycreditCardArrayemailArrayurlArrayalphaNumericStringArrayhankakuKanaStringArrayhankakuStringArrayzenkakuStringArrayzenkakuKanaStringArraycapAlphaNumericStringArraynumberArraynumericStringArrayprohibitedArraystringLengthArraydateRangeArraybyteRangeArrayルールを追加した場合、配列・コレクション用のメソッドを別途作成する 必要がある。
入力チェックでエラーが検出された場合、以下の情報を返す。
JXPathIndexedBeanWrapperImpl,
IndexedBeanWrapper| コンストラクタの概要 | |
|---|---|
FieldChecks()
|
|
| メソッドの概要 | |
|---|---|
protected String |
extractValue(Object bean,
org.apache.commons.validator.Field field)
オブジェクトから検証値を取り出す。 |
protected IndexedBeanWrapper |
getIndexedBeanWrapper(Object bean)
IndexedBeanWrapper実装クラスを取得する。 |
protected Method |
getMethod(org.apache.commons.validator.ValidatorAction va,
Class[] paramClass)
配列・コレクションの要素を検証するメソッドを取得する。 |
protected Class[] |
getParamClass(org.apache.commons.validator.ValidatorAction va)
検証ルールに渡される引数クラス配列を取得する。 |
protected void |
rejectValue(ValidationErrors errors,
org.apache.commons.validator.Field field,
org.apache.commons.validator.ValidatorAction va,
Object bean)
入力チェックエラーが生じた場合に、エラー情報を、 TERASOLUNA共通のエラーインタフェースに引き渡す。 |
boolean |
validateAlphaNumericString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが英数字であることをチェックする。 |
boolean |
validateArrayRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドの配列・コレクションの長さが、 指定数の範囲内であることをチェックする。 |
boolean |
validateArraysIndex(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドに一致する全てのプロパティ値をチェックする。 |
boolean |
validateByte(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がbyte型に変換可能か検証する。 |
boolean |
validateByteRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドのバイト列長が指定した範囲内であることを チェックする。 |
boolean |
validateCapAlphaNumericString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが大文字英数字であることをチェックする。 |
boolean |
validateDate(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が有効な日付か検証する。 |
boolean |
validateDateRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
日付が指定した範囲内であるかどうかチェックする。 |
boolean |
validateDouble(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がdouble型に変換可能か検証する。 |
boolean |
validateDoubleRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定されたdouble型に変換可能であり、 かつ指定された範囲内か検証する。 |
boolean |
validateFloat(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がfloat型に変換可能か検証する。 |
boolean |
validateFloatRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定されたfloat型に変換可能であり、 かつ指定された範囲内か検証する。 |
boolean |
validateHankakuKanaString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが半角カナ文字列であることをチェックする。 |
boolean |
validateHankakuString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが半角文字列であることをチェックする。 |
boolean |
validateInteger(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がint型に変換可能か検証する。 |
boolean |
validateIntRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定されたint型に変換可能であり、 かつ指定された範囲内か検証する。 |
boolean |
validateLong(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がlong型に変換可能か検証する。 |
boolean |
validateMask(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定された正規表現に適合するか検証する。 |
boolean |
validateMaxLength(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値の文字数が指定された最大文字数以下か検証する。 |
boolean |
validateMinLength(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値の文字数が指定された最小文字数以上か検証する。 |
boolean |
validateMultiField(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
複数フィールドの相関チェックを行う。 |
boolean |
validateNumber(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが数値であることをチェックする。 |
boolean |
validateNumericString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが半角数字であることをチェックする。 |
boolean |
validateProhibited(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドに入力禁止文字列が混入しているか どうかをチェックする。 |
boolean |
validateRequired(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値のNull検証と、スペースを除いた入力値の文字列長が0より大きいか 検証する。 |
boolean |
validateShort(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がshort型に変換可能か検証する。 |
boolean |
validateStringLength(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドの文字列長が一致していることをチェックする。 |
boolean |
validateUrl(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドがURL形式かどうかチェックする。 |
boolean |
validateZenkakuKanaString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが全角カタカナ文字列で あることをチェックする。 |
boolean |
validateZenkakuString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが全角文字列であることをチェックする。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public FieldChecks()
| メソッドの詳細 |
|---|
public boolean validateRequired(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
public boolean validateMask(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、文字列が半角英数字であるときのみtrueを返却する 検証の設定例である。
<form name="sample">
・・・
<field property="maskField"
depends="mask">
<arg key="sample.escape" position="0"/>
<var>
<var-name>mask</var-name>
<var-value>^([0-9]|[a-z]|[A-Z])*$</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| mask | 正規表現 | true | 入力文字列が指定された正規表現に合致するときは true
が返却される。指定されない場合はValidatorException
がスローされる。 |
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - 設定ファイルからmask(正規表現)の値が
取得できない場合にスローされる。
public boolean validateByte(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
public boolean validateShort(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
public boolean validateInteger(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
public boolean validateLong(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
public boolean validateFloat(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
public boolean validateDouble(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
public boolean validateDate(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
fieldに「datePattern」変数が定義されている場合、
java.text.SimpleDateFormatクラスを
利用したフォーマットの検証が行われる。
fieldに「datePatternStrict」変数が定義されている場合、
java.text.SimpleDateFormatクラスを利用したフォーマットと
桁数の検証が行われる。
例えば、'2/12/1999'は'MM/dd/yyyy'形式のフォーマットにすると
月(Month)が2桁でないため、検証エラーとなる。
「datePattern」変数と、「datePatternStrict」変数の両方が指定された 場合、「datePattern」変数が優先して使用される。 「datePattern」変数と、「datePatternStrict」変数の両方が指定されていない 場合、例外が発生する。また、日付パターンに無効な文字列が含まれている 場合も例外が発生する
フォーマット時には必ず「setLenient=false」が設定されるため、 2000/02/31のような存在しない日付は、いずれの場合も許容されない。
以下は、文字列がyyyy/MM/dd型の日付パターンに合致することを検証 する場合の設定例である。
<form name="sample">
・・・
<field property="dateField"
depends="date">
<arg key="sample.dateField" position="0"/>
<var>
<var-name>datePattern</var-name>
<var-value>yyyy/MM/dd</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| datePattern | 日付パターン | false | 日付パターンを指定する。入力値の桁数チェックは行わない。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーにならない。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 |
| datePatternStrict | 日付パターン | false | 日付パターンを指定する。入力値の桁数が、 指定された日付パターンの桁数に合致するかのチェックを行う。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーになる。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 |
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateIntRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、文字列が10から100までの範囲内の数値であるときのみ trueを返却する検証の設定例である。
<form name="sample">
・・・
<field property="intField"
depends="intRange">
<arg key="sample.intField" position="0"/>
<var>
<var-name>intRangeMin</var-name>
<var-value>10</var-value>
</var>
<var>
<var-name>intRangeMax</var-name>
<var-value>100</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| intRangeMin | 最小値 | false | 範囲指定の最小値を設定する。設定しない場合、Integerの最小値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 |
| intRangeMax | 最大値 | false | 範囲指定の最大値を設定する。設定しない場合、Integerの最大値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 |
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateDoubleRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、文字列が10から100までの範囲内の数値であるときのみ trueを返却する検証の設定例である。
<form name="sample">
・・・
<field property="doubleField"
depends="doubleRange">
<arg key="sample.doubleField" position="0"/>
<var>
<var-name>doubleRangeMin</var-name>
<var-value>10.0</var-value>
</var>
<var>
<var-name>doubleRangeMax</var-name>
<var-value>100.0</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| doubleRangeMin | 最小値 | false | 範囲指定の最小値を設定する。設定しない場合、Doubleの最小値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 |
| doubleRangeMax | 最大値 | false | 範囲指定の最大値を設定する。設定しない場合、Doubleの最大値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 |
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateFloatRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、文字列が10から100までの範囲内の数値であるときのみ trueを返却する検証の設定例である。
<form name="sample">
・・・
<field property="floatField"
depends="floatRange">
<arg key="sample.floatField" position="0"/>
<var>
<var-name>floatRangeMin</var-name>
<var-value>10</var-value>
</var>
<var>
<var-name>floatRangeMax</var-name>
<var-value>100</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| floatRangeMin | 最小値 | false | 範囲指定の最小値を設定する。設定しない場合、Floatの最小値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 |
| floatRangeMax | 最大値 | false | 範囲指定の最大値を設定する。設定しない場合、Floatの最大値が 指定される。 数値以外の文字列が入力された場合、例外がスローされる。 |
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateMaxLength(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、文字列が10文字以下であるときのみ trueを返却する検証の設定例である。
<form name="sample">
・・・
<field property="stringField"
depends="maxLength">
<arg key="sample.stringField" position="0"/>
<var>
<var-name>maxlength</var-name>
<var-value>10</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| maxlength | 最大文字数 | true | 文字列の最大文字数を設定する。 数値以外の文字列が入力された場合、例外がスローされる。 |
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateMinLength(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、文字列が10文字以上であるときのみ trueを返却する検証の設定例である。
<form name="sample">
・・・
<field property="stringField"
depends="minLength">
<arg key="sample.stringField" position="0"/>
<var>
<var-name>minlength</var-name>
<var-value>10</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| minlength | 最小文字数 | true | 文字列の最小文字数を設定する。 数値以外の文字列が入力された場合、例外がスローされる。 |
bean - 検査対象のJavaBeanインスタンスva - 検証中のValidatorActionインスタンス。field - 検証中のFieldインスタンス。errors - 検証エラーが発生した場合、
エラー情報を格納するオブジェクト。
trueを返す。
検証エラーがある場合、falseを返す。
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateAlphaNumericString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
^([0-9]|[a-z]|[A-Z])*$を使用する。
チェックに引っかかった場合は、エラー情報をerrorsに追加し、
falseを返却する。
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateCapAlphaNumericString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateNumber(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
まず、入力された文字列を用い、BigDecimal 型を生成する ここで生成不可能ならばエラー処理を行なう。 次に整数部の桁数が指定されている場合に、桁数の確認を行う。 validation.xml で isAccordedInteger() が "true" 指定されている場合のみ 整数桁数の同一チェックが行われる。 チェックに引っかかった場合は、エラー処理を行なう。 最後に小数部の桁数が指定されている場合に、桁数の確認を行う。 validation.xmlでisAccordedScaleが"true"である場合のみ 小数桁数の同一チェックが行われる。
下記は、整数部3、小数部2である数値を検証する例である。
<form name="sample">
・・・
<field property="numberField"
depends="number">
<arg key="sample.numberField" position="0"/>
<var>
<var-name>integerLength</var-name>
<var-value>3</var-value>
</var>
<var>
<var-name>scale</var-name>
<var-value>2</var-value>
</var>
<var>
<var-name>isAccordedInteger</var-name>
<var-value>true</var-value>
</var>
<var>
<var-name>isAccordedScale</var-name>
<var-value>true</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
integerLength |
整数部桁数 | false |
整数の桁数を設定する。isAccordedInteger指定が
無いときは、指定桁数以内の検証を行う。
省略時は、int型の最大値が指定される。
非数値を設定した場合、例外がスローされる。 |
scale |
小数部桁数 | false |
小数値の桁数を設定する、isAccordedScale指定が
無いときは、指定桁数以内の検証を行う。
省略時は、int型の最大値が指定される。
非数値を設定した場合、例外がスローされる。 |
isAccordedInteger |
整数桁数一致チェック | false |
trueが指定されたとき、整数桁数の一致チェックが
行なわれる。省略時、true以外の文字列が設定された時は
桁数以内チェックとなる。 |
isAccordedScale |
小数桁数一致チェック | false |
trueが指定されたとき、小数桁数の一致チェックが
行なわれる。省略時、true以外の文字列が設定された時は
桁数以内チェックとなる。 |
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateHankakuKanaString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateHankakuString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateZenkakuString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateZenkakuKanaString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateProhibited(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、禁止文字列チェックの設定例である。
<form name="sample">
・・・
<field property="stringField"
depends="prohibited">
<arg key="sample.stringField" position="0"/>
<var>
<var-name>chars</var-name>
<var-value>!"#$%&'()<></var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| chars | 入力禁止キャラクタ | true | 入力を禁止する文字。設定されない場合は、ValidatorException がスローされる。 |
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - 設定ファイルからcharsの値が取得できない
場合にスローされる。
public boolean validateNumericString(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateStringLength(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、文字列長が5であるときのみtrueを返却する 検証の設定例である。
<form name="sample">
・・・
<field property="stringField"
depends="stringLength">
<arg key="sample.stringField" position="0"/>
<var>
<var-name>stringLength</var-name>
<var-value>5</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| stringLength | 入力文字列長 | false | 入力文字列長を指定する。
省略時は、int型の最大値が指定される。 |
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateArrayRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、配列・コレクションの長さが4〜7であるときのみtrueを返却する 検証の設定例である。
<form name="sample">
・・・
<field property="arrayField"
depends="arrayRange">
<arg key="sample.arrayField" position="0"/>
<var>
<var-name>minArrayLength</var-name>
<var-value>4</var-value>
</var>
<var>
<var-name>maxArrayLength</var-name>
<var-value>7</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| minArrayLength | 最小配列数 | false | 配列の最小配列数を指定する。 最小配列数の指定がない場合、0が指定される。 |
| maxArrayLength | 最大配列数 | false | 配列の最大配列数を指定する。
最大配列数の指定がない場合、
int型の最大値が指定される。 |
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateUrl(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
以下は、HTTP、FTPプロトコル指定可能、ダブルスラッシュ指定可能、 URLの分割可能である検証の設定例である。
<form name="sample">
・・・
<field property="date"
depends="url">
<arg key="label.date" position="0"/>
<var>
<var-name>allowallschemes</var-name>
<var-value>false</var-value>
</var>
<var>
<var-name>allow2slashes</var-name>
<var-value>true</var-value>
</var>
<var>
<var-name>nofragments</var-name>
<var-value>false</var-value>
</var>
<var>
<var-name>schemes</var-name>
<var-value>http,ftp</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| allowallschemes | true(or false) | false | 全てのスキームを許可するか判断するフラグ。デフォルトfalse。 |
| allow2slashes | true(or false) | false | ダブルスラッシュを許可するか判断するフラグ。デフォルトfalse。 |
| nofragments | true(or false) | false | URL分割禁止か判断するフラグ。デフォルトfalse。 |
| schemes | プロトコル | false | 許可するスキーム。複数ある場合はカンマ区切りで指定。 デフォルトはhttp, https, ftp。 |
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
public boolean validateByteRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、バイト列長が5以上、10以下であるときのみ true を返却する検証の設定例である。
<form name="sample">
・・・
<field property="stringField"
depends="byteRange">
<arg key="sample.stringField" position="0"/>
<var>
<var-name>maxByteLength</var-name>
<var-value>10</var-value>
</var>
<var>
<var-name>minByteLength</var-name>
<var-value>5</var-value>
</var>
<var>
<var-name>encoding</var-name>
<var-value>Windows-31J</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| maxByteLength | 最大バイト数 | false | 入力文字列バイト長を検証するための最大バイト長。
省略時は、int型の最大値が指定される。 |
| minByteLength | 最小バイト数 | false | 入力文字列バイト長を検証するための最小バイト長。 省略時は、0が指定される。 |
| encoding | 文字エンコーディング | false | 入力文字をバイト列に変換する際に使用する文字エンコーディング。 省略された場合はVMのデフォルトエンコーディングが使用される。 |
bean - 検査対象のオブジェクトva - Validatorにより用意されたValidatorActionfield - フィールドオブジェクトerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
スローされる例外。
public boolean validateDateRange(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
以下は、日付が2000/01/01から2010/12/31の範囲内であるかどうかの 検証の設定例である。
<form name="sample">
・・・
<field property="date"
depends="dateRange">
<arg key="date" position="0"/>
<var>
<var-name>startDate</var-name>
<var-value>2000/01/01</var-value>
</var>
<var>
<var-name>endDate</var-name>
<var-value>2010/12/31</var-value>
</var>
</field>
・・・
</form>
var-name |
var-value |
||
| startDate | 開始日付 | false | 日付範囲の開始の閾値となる日付。 日付パターンで指定した形式で設定すること。 |
| endDate | 終了日付 | false | 日付範囲の終了の閾値となる日付。 日付パターンで指定した形式で設定すること。 |
| datePattern | 日付パターン | false | 日付パターンを指定する。入力値の桁数チェックは行わない。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーにならない。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 |
| datePatternStrict | 日付パターン | false | 日付パターンを指定する。入力値の桁数が、 指定された日付パターンの桁数に合致するかのチェックを行う。 たとえば、日付パターンがyyyy/MM/ddの場合、2001/1/1はエラーになる。 datePatternとdatePatternStrictが両方指定されている場合は、 datePatternが優先して使用される。 |
bean - 検査対象のオブジェクトva - Validatorにより用意されたValidatorActionfield - フィールドオブジェクトerrors - エラー
org.apache.commons.validator.ValidatorException - datePatternまたはdatePatternStrictに不正な
パターン文字が含まれる場合、startDateまたはendDateが日付に変換できない
場合にスローされる
public boolean validateArraysIndex(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
throws org.apache.commons.validator.ValidatorException
配列・コレクション型に対してのフィールドチェックが可能である。 配列・コレクションの全ての要素に対して、validation.xmlで 定義したdepends名から”Array”を取ったチェックルールを呼び出す。 depends="requiredArray" ⇒ "required" (必須チェック)
bean - 検査対象のJavaBeanインスタンスva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスerrors - エラー
org.apache.commons.validator.ValidatorException - validation定義ファイルの設定ミスがあった場合
、チェック対象のbeanがnullである場合にスローされる例外。protected IndexedBeanWrapper getIndexedBeanWrapper(Object bean)
bean - ターゲットのBean
protected Class[] getParamClass(org.apache.commons.validator.ValidatorAction va)
va - Validatorにより用意されたValidatorAction
protected Method getMethod(org.apache.commons.validator.ValidatorAction va,
Class[] paramClass)
va - ValidatorActionparamClass - 引数クラス配列
public boolean validateMultiField(Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
MultiFieldValidator の実装クラスが必要。validation.xml に設定を行う。validation.xml に必ず記述すること。MultiFieldValidator の実装例
public boolean validate(Object value, Object[] depends) {
int value0 = Integer.parseInt(value);
int value1 = Integer.parseInt(depends[0]);
int value2 = Integer.parseInt(depends[1]);
return (value1 <= value0 && value2 >= value0);
}
<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}の間の値を入力してください。
var-name |
var-value |
||
| fields | 検証に必要な他のフィールド名 | false | 複数のフィールドを指定する場合はフィールド名をカンマ区切りで 指定する。 |
| multiFieldValidator | MultiFieldValidator 実装クラス名 |
true | 複数フィールドの相関チェックを行う MultiFieldValidator
実装クラス名。 |
bean - 検査対象のオブジェクトva - Validatorにより用意されたValidatorActionfield - フィールドオブジェクトerrors - エラー
true
protected String extractValue(Object bean,
org.apache.commons.validator.Field field)
Fieldオブジェクトの値から、
ValidatorUtilsクラスのメソッドを利用して値を取得する。
bean - 検証対象のオブジェクト。field - Fieldオブジェクト。
ValidatorUtils.getValueAsString(Object, String)
protected void rejectValue(ValidationErrors errors,
org.apache.commons.validator.Field field,
org.apache.commons.validator.ValidatorAction va,
Object bean)
errors - エラーva - Validatorにより用意されたValidatorActionfield - フィールドインスタンスbean - 入力エラーが生じたJavaBeanインスタンス
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||