Validationについて


次はValidationについてです。
画面遷移時にValidationについての話が出てきました。
ではどのようにPageクラスのValidationをするのでしょうか。


こちらはS2JSFS2Strutsを使ったことのある人なら馴染みの
ある方法を採用しています。
そう、定数アノテーションTigerアノテーションです。
TeedaはJDK1.4に対応しているため、定数アノテーションでも使えます。
Tigerアノテーションでも使えますが、まずは定数アノテーションを使ってみましょう。


定数アノテーションの記法は以下のようになっています。


public static final String プロパティ名_Validator名 = "Validatorの各プロパティの設定";



例えば、下記のような足し算の入力画面のPageクラスがあるとします。
このクラスでは、引数にarg1とarg2をとり、両方とも入力必須で
桁数が3桁以上入力されなくてはいけないとします。


AddInputPage.java

public class AddInputPage {

	private Integer arg1;

	private Integer arg2;

	public Integer getArg1() {
		return arg1;
	}

	public void setArg1(Integer arg1) {
		this.arg1 = arg1;
	}

	public Integer getArg2() {
		return arg2;
	}

	public void setArg2(Integer arg2) {
		this.arg2 = arg2;
	}

}


このような場合にどうすればよいのでしょうか。
上記の記述を思い出しながらやってみましょう。

まずプロパティarg1に必須項目のValidatorをしかけましょう。
どんなValidatorがあるのか今は気にしないでください。あとできちんと明記します。


public static final String プロパティ名_Validator名 = "Validatorの各プロパティの設定";


が記法なので、


public static final String arg1_TRequiredValidator = null;


というようになります。所定のValidatorに与えるプロパティがnullの場合は上記のように
してもらえればよいです。


これでarg1に必須チェックがかかります。
さて、次は入力桁が3桁以上でなければいけないというチェックですが、
標準のValidatorにLengthValidatorというValidatorがあります。
これを使いましょう。
今度はLengthValidatorのプロパティにきちんと値を渡さなくてはいけないですね。
最小の桁数が3桁なので、minimum=3というプロパティを渡します。



public static final String arg1_lengthValidator = "minimum=3";


さあ、これでValidationがかかります。
同じようにarg2でもValidationをかけることが出来ます。


先ほど示した例はこのようになります。


AddInputPage.java

public class AddInputPage {

	public static final String arg1_TRequiredValidator = null;

	public static final String arg1_lengthValidator = "minimum=3";

	public static final String arg2_TRequiredValidator = null;

	public static final String arg2_lengthValidator = "minimum=3";

	private Integer arg1;

	private Integer arg2;

	public Integer getArg1() {
		return arg1;
	}

	public void setArg1(Integer arg1) {
		this.arg1 = arg1;
	}

	public Integer getArg2() {
		return arg2;
	}

	public void setArg2(Integer arg2) {
		this.arg2 = arg2;
	}

}


このようにValidatorをしかけていきます。
Validatorは各プロパティごとに書かれた順番どおりに呼ばれます。
上記の例だと、arg1はTRequiredが呼ばれて、その後にLengthValidatorが呼ばれます。
Tigerでも同じ仕組みで行われます。この例は各Validatorを説明した後に書きたいと思います。



次は各Validatorについて見ていきましょう。