[Wicket-ja-user 594] 一つのコンポーネントに複数の validator を add した場合の挙動について

Back to archive index

Masaya seko masay****@nifty*****
2011年 11月 21日 (月) 18:46:36 JST


お世話になっております。世古です。

「WicketによるWebアプリケーション開発(第1版第1刷)」の内容について質問がありま
す。

P207の「TIPS」に以下の記述が存在します。
----ここから
Wicketは、必須項目チェックを除き、コンポーネントに登録されたバリデータを常に実
行します。
もしあるバリデータで検証が失敗したらほかのバリデータを実行したくない場合には、
CompoundValidatorを使用します。
----ここまで


以下のようなコードを実行してみたのですが、バリデータによるチェックに失敗したら
、後続のバリデータは実行されない挙動になりました。
(FormComponent#validateValidators()にブレークポイントを仕掛けて挙動を確認した
ら、後続のバリデータは実行されない)

----ここから
public class HomePage extends WebPage {

    private static final long serialVersionUID = 1L;

    public HomePage(final PageParameters parameters) {
        IModel<String> model = new Model<String>();
        Form<Void> form = new Form<Void>("form");
        TextField<String> text = new TextField<String>("text",model);
        
        text.add(StringValidator.maximumLength(3));
        text.add(new PatternValidator("\\d*"));
        form.add(text);
        
        FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
        form.add(feedbackPanel);
        
        add(form);
    }
}
----ここまで


そこで質問です。
1.Wicketの仕様が途中で変わったのでしょうか。(私が使用したバージョンは1.4.19)
  それとも何か私が勘違いしているのでしょうか。

2.コンポーネントに登録されたバリデータについて、後続のバリデータも実行したい場
合はどのようにするのが良いでしょうか。
  「複数のチェックを行ないたい場合は、複数のチェックを行う単一のバリデータを作
成する」となるのでしょうか。

以上




Wicket-ja-user メーリングリストの案内
Back to archive index