設定方法
必須チェック
対象コンポーネント.setRequired(true);
で設定する。
その他
対象コンポーネントに、IValidatorを継承したバリデーションクラスを対象コンポーネント.add(IValidator);
で設定する。
数値の最小、最大、範囲指定
1 2 3 |
MinimumValidator(minNumber); MaximumValidator(maxNumber); RangeValidator(minNumber, maxNumber); |
文字列長の固定長、最小、最大、範囲指定
1 2 3 4 |
StringValidator.exactLength(minLength); StringValidator.minimumLength(minLength); StringValidator.maximumLength(maxLength); StringValidator.lengthBetween(minLength, maxLength); |
正規表現
1 |
new PatternValidator(正規表現) |
メッセージ設定
プロパティファイルに特定のキーでメッセージや置換文字列を用意しておくとそれが使用される。どんなものがあるかはWicketのソースを見ると手っ取り早い。
一例(XML形式)
1 2 |
<entry key="StringValidator.minimum">'${input}' は最低 ${minimum} 文字必要です。</entry> <entry key="StringValidator.maximum">'${input}' は最大 ${maximum} 文字までです。</entry> |
バリデーションクラスを自作した場合は、クラス名をキーにしてメッセージを作成する。
1 |
<entry key="UnkoValidator">'${unko}' はうんこではありません。</entry> |
自作したバリデーションクラスのほうでは、置換文字と表示内容を設定する必要がある。
1 2 3 4 5 6 7 8 |
@Override protected Map variablesMap(IValidatable validatable) { Map map = super.variablesMap(validatable); // キーと値(コンポーネントの名称)を設定 // この例ではメッセージの ${unko} が unkoLabel に置換され表示される map.put("unko", unkoLabel); return map; } |