バリデータの作成

バリデータの作成

バリデータ クラスを拡張し、独自のバリデータとバリデータ要素タグを作成することができます。

独自のバリデータを作成するのに実行する必要がある、主な手順は次のとおりです。
  • Validator クラスのサブクラスを作成する
  • カスタム Validator クラスを参照するバリデータ要素を定義する
サブクラス

次の例に、バリデータ サブクラスを示します。

 

package myvalidators;
public class EmailValidator extends Validator {
 protected boolean validate (Object objectToValidate) 
           throws ValidationException{ ... }
} 

要素タグ


カスタム バリデータ要素タグを作成するには、次の例に示すように validator 要素を使用します。

 

<validator:validator
  id="emailValidator"
  class="myvalidators.EmailValidator"
  value="email.text"
  onSuccess=""
  onFailure="macro://failureMacro.execute('Not a valid email address')" />

Validator クラスのサブクラスの作成


バリデータを作成するには、com.nexaweb.plugin.validation.validators.Validatorサブクラスを作成し、#validate をオーバーライドする必要があります。

Validator クラスには、バリデータの作成に使用できる次のメソッドが含まれています。

メソッド
説明
必須/省略可能
initialize(ClientSession, Element)
このバリデータに関連付けられているクライアント セッションと要素オブジェクトを使用し、バリデータを初期化します。
検証が行われる前に呼び出されます。ValidatorInitializationException をスローします。
検証するフィールド内のユーザー入力を、検証のonSuccessメッセージまたはonFailureメッセージを提供する MCO またはマクロで使用できるようにします。
省略可能
validate (Object)
指定されたオブジェクトで実際の検証を実行します。
ValidatorInitializationExceptionをスローします。
必須

例:

 

package myvalidators.HairColorValidator;

public class HairColorValidator extends Validator {
  protected boolean validate (Object objectToValidate) {
    List hairColors = new ArrayList();

    hairColors.add("brown");
    hairColors.add("red");
    hairColors.add("black");

    return hairColors.contains(objectToValidate); 
 }
} 
 
 
バリデータ要素の定義

Nexaweb クライアント アプリケーションで作成したバリデータを使用する要素タグを作成します。

<val:validator />要素を使用し、用意されているバリデータのタグを作成するときと同じようにカスタムバリデータのタグを作成し、次の属性を含めます。
属性
説明
xmlns:val=“http://nexaweb.com/validator
バリデータ名前空間を指定します。
class=
このカスタム バリデータ用に作成したバリデータ サブクラスを参照します。

例:

 

<val:validator
xmlns:val="http://nexaweb.com/validator"
id="hairColorValidator"
value="hairColor.text"
class="myvalidators.HairColorValidator"
onSuccess="mco://myMco.validHairColor()"
onFailure="mco://myMco.invalidHairColor()"/>