|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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”を 加えた名前を指定する。
配列・コレクション型の一覧検証に対応するルールは以下の通りである。requiredArray
minLengthArray
maxLengthArray
maskArray
byteArray
shortArray
integerArray
longArray
floatArray
doubleArray
dateArray
intRangeArray
doubleRangeArray
floatRangeArray
creditCardArray
emailArray
urlArray
alphaNumericStringArray
hankakuKanaStringArray
hankakuStringArray
zenkakuStringArray
zenkakuKanaStringArray
capAlphaNumericStringArray
numberArray
numericStringArray
prohibitedArray
stringLengthArray
dateRangeArray
byteRangeArray
ルールを追加した場合、配列・コレクション用のメソッドを別途作成する 必要がある。
入力チェックでエラーが検出された場合、以下の情報を返す。
JXPathIndexedBeanWrapperImpl
,
IndexedBeanWrapper
フィールドの概要 | |
---|---|
private static org.apache.commons.logging.Log |
log
本クラスで利用するログ。 |
コンストラクタの概要 | |
---|---|
FieldChecks()
|
メソッドの概要 | |
---|---|
protected java.lang.String |
extractValue(java.lang.Object bean,
org.apache.commons.validator.Field field)
オブジェクトから検証値を取り出す。 |
protected IndexedBeanWrapper |
getIndexedBeanWrapper(java.lang.Object bean)
IndexedBeanWrapper実装クラスを取得する。 |
protected java.lang.reflect.Method |
getMethod(org.apache.commons.validator.ValidatorAction va,
java.lang.Class[] paramClass)
配列・コレクションの要素を検証するメソッドを取得する。 |
protected java.lang.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,
java.lang.Object bean)
入力チェックエラーが生じた場合に、エラー情報を、 TERASOLUNA共通のエラーインタフェースに引き渡す。 |
boolean |
validateAlphaNumericString(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが英数字であることをチェックする。 |
boolean |
validateArrayRange(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドの配列・コレクションの長さが、 指定数の範囲内であることをチェックする。 |
boolean |
validateArraysIndex(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドに一致する全てのプロパティ値をチェックする。 |
boolean |
validateByte(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がbyte型に変換可能か検証する。 |
boolean |
validateByteRange(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドのバイト列長が指定した範囲内であることを チェックする。 |
boolean |
validateCapAlphaNumericString(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが大文字英数字であることをチェックする。 |
boolean |
validateDate(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が有効な日付か検証する。 |
boolean |
validateDateRange(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
日付が指定した範囲内であるかどうかチェックする。 |
boolean |
validateDouble(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がdouble型に変換可能か検証する。 |
boolean |
validateDoubleRange(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定されたdouble型に変換可能であり、 かつ指定された範囲内か検証する。 |
boolean |
validateFloat(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がfloat型に変換可能か検証する。 |
boolean |
validateFloatRange(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定されたfloat型に変換可能であり、 かつ指定された範囲内か検証する。 |
boolean |
validateHankakuKanaString(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが半角カナ文字列であることをチェックする。 |
boolean |
validateHankakuString(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが半角文字列であることをチェックする。 |
boolean |
validateInteger(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がint型に変換可能か検証する。 |
boolean |
validateIntRange(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定されたint型に変換可能であり、 かつ指定された範囲内か検証する。 |
boolean |
validateLong(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がlong型に変換可能か検証する。 |
boolean |
validateMask(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値が指定された正規表現に適合するか検証する。 |
boolean |
validateMaxLength(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値の文字数が指定された最大文字数以下か検証する。 |
boolean |
validateMinLength(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値の文字数が指定された最小文字数以上か検証する。 |
boolean |
validateMultiField(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
複数フィールドの相関チェックを行う。 |
boolean |
validateNumber(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが数値であることをチェックする。 |
boolean |
validateNumericString(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが半角数字であることをチェックする。 |
boolean |
validateProhibited(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドに入力禁止文字列が混入しているか どうかをチェックする。 |
boolean |
validateRequired(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値のNull検証と、スペースを除いた入力値の文字列長が0より大きいか 検証する。 |
boolean |
validateShort(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
入力値がshort型に変換可能か検証する。 |
boolean |
validateStringLength(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドの文字列長が一致していることをチェックする。 |
boolean |
validateUrl(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドがURL形式かどうかチェックする。 |
boolean |
validateZenkakuKanaString(java.lang.Object bean,
org.apache.commons.validator.ValidatorAction va,
org.apache.commons.validator.Field field,
ValidationErrors errors)
指定されたフィールドが全角カタカナ文字列で あることをチェックする。 |
boolean |
validateZenkakuString(java.lang.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 |
フィールドの詳細 |
---|
private static org.apache.commons.logging.Log log
コンストラクタの詳細 |
---|
public FieldChecks()
メソッドの詳細 |
---|
public boolean validateRequired(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.Object bean)
bean
- ターゲットのBean
protected java.lang.Class[] getParamClass(org.apache.commons.validator.ValidatorAction va)
va
- Validatorにより用意されたValidatorAction
protected java.lang.reflect.Method getMethod(org.apache.commons.validator.ValidatorAction va, java.lang.Class[] paramClass)
va
- ValidatorActionparamClass
- 引数クラス配列
public boolean validateMultiField(java.lang.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 java.lang.String extractValue(java.lang.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, java.lang.Object bean)
errors
- エラーva
- Validatorにより用意されたValidatorActionfield
- フィールドインスタンスbean
- 入力エラーが生じたJavaBeanインスタンス
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |