Documentation

You are viewing the documentation for Play 1. The documentation for Play 2 is here.

組み込みバリデーション

Play にはいくつか組み込みバリデーションが用意されており、使用方法は バリデーション の章で説明されています。

バリデーションにはそれぞれエラーメッセージが関連づけられています。エラーメッセージは PLAY_HOME/resources/messages に定義され、キーは validation. の後にバリデーションの名前が付いたものです。この定義は同一のキーでアプリケーションの conf/messages ファイルにメッセージを定義することで上書きすることが出来ます。また他言語用のメッセージファイルを使うことでローカライズすることも出来ます。

email

メールアドレス形式かどうかをチェックします。

validation.email(address);

アノテーション構文:

@Email String address

メッセージキー: validation.email

equals

他のパラメータの値と等しいかどうかをチェックします。チェックには検証値の equals メソッドが使用されます。例えばパスワードの確認フィールドのチェックに使用します。

validation.equals(password, passwordConfirmation);

アノテーション構文:

@Equals("passwordConfirmation") String password

メッセージキー: validation.equals

future

未来の日付かどうかをチェックします。2番目の日付が基準日として指定された場合、基準日に対して未来、言い換えると基準日よりも後でなければいけません。

validation.future(dueDate);
validation.future(dueDate, shipmentDate);

アノテーション構文:

@InFuture String dueDate
@InFuture("1979-12-31") String birthDate

メッセージキー: validation.future

ipv4Address

バージョン 4 のプロトコルに沿った IP アドレスかどうかをチェックします。空文字列は有効な値 (valid) だと見なされます。

validation.ipv4Address(value);

アノテーション構文:

@IPv4Address String ip

メッセージキー: validation.ipv4

ipv6Address

バージョン 6 のプロトコルに沿った IP アドレスかどうかをチェックします。空文字列は有効な値 (valid) だと見なされます。

validation.ipv6Address(value);

アノテーション構文:

@IPv6Address String ip

メッセージキー: validation.ipv6

isTrue

true と評価される String または Boolean かどうかをチェックします。例えばチェック必須の ‘規約に同意します’ のチェックボックスがチェックされているかどうかや、非ゼロの Number かどうかをチェックするときに使用します。ヌル値は false または不正な値だとみなされます。

validation.isTrue(agree);

アノテーション構文:

@IsTrue String agree

メッセージキー: validation.isTrue

match

指定された正規表現にマッチするかどうかをチェックします。空文字列は有効な値 (valid) だと見なされます。

validation.match(abbreviation, "[A-Z]{3}"); // TLA

アノテーション構文:

@Match("[A-Z]{3}") String abbreviation

メッセージキー: validation.match

max

指定された数値以下の String または Number であるかどうかをチェックします。ヌル値は有効な値 (valid) だと見なされます。

validation.max(wordCount, 7500); // Short story

アノテーション構文:

@Max(7500) String wordCount

メッセージキー: validation.max

maxSize

指定された長さ以下の String かどうかをチェックします。空文字列は有効な値 (valid) だと見なされます。

validation.maxSize(url, 2083); // IE 4.0 - 8

アノテーション構文:

@MaxSize(2083) String value

メッセージキー: validation.maxSize

min

指定された数値以上の String または Number かどうかをチェックします。ヌル値は有効な値 (valid) だと見なされます。

validation.min(age, 18); // Adult

アノテーション構文:

@Min(18) Long age

メッセージキー: validation.min

minSize

指定された長さ以上の String かどうかをチェックします。空文字列は有効な値 (valid) だと見なされます。

validation.minSize(value, 42);

アノテーション構文:

@MinSize(42) String value

メッセージキー: validation.minSize

past

過去の日付かどうかをチェックします。2番目の日付が基準日として指定された場合、基準日に対して過去、言い換えると基準日よりも前でなければいけません。

validation.past(actualDepartureDate);
validation.past(expectedDepartureDate, expectedArrivalDate);

アノテーション構文:

@InPast String actualDepartureDate
@InPast("1980-01-01") String birthDate

メッセージキー: validation.past

phone

正当な電話番号かどうかをチェックします。空文字列は有効な値 (valid) だと見なされます。バリデーションは厳密ではなく、基本的な電話番号のパターンに沿っているかどうかをチェックするだけです。国固有のバリデーションは独自の @Match を実装してください。

validation.phone(value);

アノテーション構文:

@Phone String phone

メッセージキー: validation.phone

フォーマット: +CCC (SSSSSS)9999999999xEEEE

例:

range

指定された 2 つの数値の範囲に含まれる数値かどうかをチェックします。

validation.range(wordCount, 17500, 40000); // 短編小説

アノテーション構文:

@Range(min = 17500, max = 40000) String wordCount

メッセージキー: validation.range

required

String, Collection, File または配列が空でないかどうかをチェックします。

validation.required(value);

アノテーション構文:

@Required String value

メッセージキー: validation.required

unique

データベースに問い合わせることで、このアノテーションを持つカラムの値がユニークであることをチェックします。(JPA によってのみ動作します) 追加のカラムをカンマ区切りのリストとしてアノテーションの値に定義することができます。このため、 c と呼ばれるプロパティを @Unique(“a, b”) で注釈すると、プロパティ a, b そして c の値の組み合わせがユニークであることをチェックします。

アノテーション構文:

@Unique(additionalColumns) String productCode
@Unique("postCode") String houseNumber

メッセージキー: validation.unique

url

正当な URL かどうかをチェックします。空文字列は有効な値 (valid) だと見なされます。(RFC 1738 に定義されている) 正当な URL が全て受け入れられるわけではないことに注意してください。@http@, httpsftp スキーマの URL だけが有効な値 (valid) だと見なされます。

validation.url(value);

アノテーション構文:

@URL String address

メッセージキー: validation.url