Getting started with JSR 303 (Bean Validation) – part 3

Default message interpolation

デフォルトメッセージ補完の説明をします。


バリデーションアノテーションはmessageプロパティが必須です。
そのmessageプロパティにセットされたトークンが補完対象のメッセージとなります。


補完対象のトークンは"{}"で囲まれている必要があります。そうでない場合はリテラルとみなされます。
また"{"のエスケープは"\\{"と記述し、同様にまた"}"のエスケープは"\\}"と記述します。


メッセージ補完のためのパラメータは「ValidationMessages.properties」に記述されたキーかアノテーションのプロパティが対象となります。


例えば以下のようなアノテーションとプロパティーメッセージを定義されていた場合
検証結果が不正だったときに「Value size must be between 0 and 10」のメッセージが取得できます。


●Sizeアノテーション

public @interface Size {

	String message() default "{validator.size}";

	Class<?>[] groups() default {};

	int min() default 0;

	int max() default 10;
}

●ValidationMessages.propertiesの中身のキーとメッセージ

validator.size=Value size must be between {min} and {max}

これは最初に {validator.size} → Value size must be between {min} and {max}と補完されその後に Value size must be between {min} and {max} → Value size must be between 0 and 10と補完されました。
通常は"{}"で囲まれているものがなくなるか、対象のパラメータが見つからなくなるまで補完されます。