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には、値が入ってこないので注意が必要です。
ふぅ〜、このケースに気づかず画面動かしてからアタフタしたのは内緒^^;