Wicket の Ajax Button で、バリデーションエラーを FeedbackPanel に表示させた後、
正常入力して onSubmit を実行しても、特殊の処置をしないとバリデーションメッセージ
がクリアされない。
setResponsePage で自ページ再表示すれば、この処置をしなくても FeedabackPanel は、
当然、再度インスタンスでクリアされることになるが、
onSubmitでモーダルを起動したりする場合に困る。
final FeedbackPanel feedback = new FeedbackPanel("feedback");
feedback.setOutputMarkupId(true);
// ↑
// AjaxButton内 onError オーバライドでメッセージ出力を許可
add(feedback);
Form<Void> form = new Form<Void>("form");
form.add(new AjaxButton("submit"){
@Override
protected void onSubmit(AjaxRequestTarget target,Form<?> f){
// サブミット時の処理
// セッション取得してバリデーションメッセージのクリア
// ↓
Session.get().cleanupFeedbackMessages();
target.addComponent(feedback);
}
@Override
protected void onError(AjaxRequestTarget target,Form<?> f){
target.addComponent(f.getPage().get("feedback"));
}
});