formのinputの必須チェックを回避するの巻

そんなことも知らずにWicket-jaを語るな!と怒られそうですが、
業務でやっていなかったということでお許しをwww


FormのInputで必須項目があった場合に

    Form form = new Form("form");
    add(form);

    TextField addressField = new TextField("address", new PropertyModel(this, "address"));
    addressField.setRequired(true);
    form.add(addressField);

    TextField zipField = new TextField("zip", new PropertyModel(this, "zip"));
    zipField.setRequired(true);
    form.add(zipField);


って実装しますよね。
でも、このFormでzipFieldの値を利用した郵便番号検索をしたい場合に
更新時の必須項目addressFieldは、必須ではない。
そういった場合に、郵便番号検索のボタンに

    zipButton = new Button("zipButton") {
        private static final long serialVersionUID = -6563042577556478557L;
            public void onSubmit() {
            //郵便番号検索処理
        }
    };
    zipButton.setDefaultFormProcessing(false);
    form.add(zipButton);


とすることで、他のボタンの時のように必須チェック等を行わなくなる。
ただし、その場合に、このボタン押下時にPropertyModelを使っている場合に
ローカル変数zipには、値が入ってこないので注意が必要です。


ふぅ〜、このケースに気づかず画面動かしてからアタフタしたのは内緒^^;