任意のクラスをバリデーション対象にする方法
任意のPOJOクラスをバリデーションの対象とするには、クラスに@Constraints.Validate
アノテーションを付け、Constraints.Validatable<List<ValidationError>>
をimplementするようにすれば良い。
import play.data.validation.Constraints;
import play.data.validation.ValidationError;
@Constraints.Validate
public class SomeForm implements Constraints.Validatable<List<ValidationError>> {
@Override
public List<ValidationError> validate() {
List<ValidationError> errors = new ArrayList<>();
// バリデーション処理
return errors.isEmpty() ? null : errors;
}
}
コントローラー側では以下の様にbindできる。
Form<SomeForm> form = formFactory.form(SomeForm.class).bindFromRequest();