AbstractValidator が Deprecated

Wicket6 AbstractValidator Deprecated になっている!
さらに、将来、Wicket 7 では、完全になくなってしまうというのは、結構辛い。

org.apache.wicket.validation.IValidator を使いなさいということなのだが、
実装してバリデーション結果でエラーの時、error(Serializable message) を実行するようにしたとして、
IValidator 実装をどのように、Behavior :ふるまわせるようにすれば、良いのだろう??

 extends Behavior implements IValidator<T>

このように Behavior を継承して、IValidator を実装して
org.apache.wicket.validation.IValidatable
バリデーション結果でエラーの時、
error メソッドで ValidationError を渡すようにする。


例) Date型ではなくて、文字列として Field コンポーネントを使ったときのバリデータを用意する。

import java.text.SimpleDateFormat;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
/**
 * DatePickerCheckBehavior
 */

public class DatePickerValidator extends Behavior implements IValidator<String>{
   private SimpleDateFormat sfymd;
   public DatePickerValidator(String dateformat){
      sfymd = new SimpleDateFormat(dateformat);
   }
   @Override
   public void validate(IValidatable<String> validatable){
      try{
      sfymd.parse(validatable.getValue());
      }catch(Exception e){
         validatable.error(new ValidationError("Date Error"));
      }
   }
}