Wicket1.5のValidatorの上位クラスがBehaviorになっているのだけど真意がわかんない

はじめに

 Wicket1.5で行われた変更について、私には真意が分からないものがいくつかあります。
 その一つが、Validatorの上位クラスがBehaviorになっていることです。

環境

Validatorの上位クラスがBehaviorになっている?

 以下のページを読みますと、「All standard validators now extend Behavior to allow for client side validations」という変更が存在しています。


 日本語にすると「すべての標準のバリデータは、クライアント側バリデーションを可能にするために、Behaviorを継承する」といった感じでしょうか。

 でも、です。
 別にValidatorを見てもクライアント側バリデーションをサポートするコードが埋まっているようには見えないのです。
 クライアント側バリデーションをするコードは、自分で書けと言うことなのでしょうか。

 ちなみ自分で書くのだと想定して書いてみると、以下のような感じ。
 実際は、Validatorは匿名クラスにせずに使い回すのだと思います。

public class HomePage extends WebPage {
    private static final long serialVersionUID = 1L;

    public HomePage(final PageParameters parameters) {
        Model<String> model = new Model<String>();
        Form<Void> form = new Form<Void>("form");
        final TextField<String> textField = new TextField<String>("text", model);
        textField.setOutputMarkupId(true);

        textField.add(new RangeValidator<Integer>(1,3){
            private static final long serialVersionUID = 1L;

            @Override
            public void onComponentTag(final Component component, final ComponentTag tag)
            {
                StringBuilder sb = new StringBuilder();
                String textFieldID = textField.getMarkupId();
                sb.append("var value = document.getElementById('" + textFieldID + "').value;");
                sb.append("if(isNaN(value) || value <" + this.getMinimum().toString()+ "|| value> " + this.getMaximum() + "){alert('error');}");
                tag.getAttributes().put("onblur", sb.toString());
            }
        });
        form.add(textField);
        add(form);
    }
}

さいごに

 開発者のblogを見たら載っているのではないかという気もするのですが、Wicket開発者の役割分担とか、そもそもコアな開発者は誰なのかとかが分かっていないので、現実的な時間で調べるのが辛いという…。