Validators v = new Validators(request);v.add("arg1", v.required(), v.integerType());v.add("arg2", v.required(), v.integerType(), v.longRange(3, 5));if (v.validate()) { //OK} else { //NG Errors errors = v.getErrors(); System.out.println(errors.get("arg1")); System.out.println(errors.get("arg2"));}同じリクエスト属性に対して複数のバリデータを追加した場合、属性値が不正だと最初に判断したバリデータのメッセージが使用されます。 エラーメッセージは <project>/src/application[_locale].properties に以下のように設定されています。 validator.required={0} is required.validator.byteType={0} must be a byte.validator.shortType={0} must be a short.validator.integerType={0} must be an integer.validator.longType={0} must be a long.validator.floatType={0} must be a float.validator.doubleType={0} must be a double.validator.numberType={0} is not a number({1}).validator.dateType={0} is not a date({1}).validator.minlength={0} can not be less than {1} characters.validator.maxlength={0} can not be greater than {1} characters.validator.range={0} is not in the {1} to {2} range.validator.regexp={0} is invalid.label.arg1=xxxlabel.arg2=yyyHOT リローディングにより、application[_locale].properties を変更しても、Webアプリケーションの再起動なしで変更を確認できます。 もし属性がモデルに保存されている場合、モデルのメタデータ によってタイプセーフに属性名を指定することができます。 Validators v = new Validators(request);BlogMeta meta = BlogMeta.get();v.add(meta.title, v.required());v.add(meta.content, v.required());See Validators and demo. |