( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

AjaxButtonでエラーが発生したときに、FeedbackPanelを更新する方法

FeedbackPanelをaddしておくと、validateでエラーになったメッセージを勝手に表示してくれて便利。
で、ふつーのButtonだったら問題なしだけど、AjaxButtonでsubmitしてる場合はちょっと注意。

っていうのは、AjaxButtonのonError()で、FeedbackPanelを更新するように、AjaxRequestTargetにaddする必要がありまっせ。
当然、FeedbackPanelはsetOutputMarkupId( true )としておく必要あり。

    FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
    this.feedbackPanel.setOutputMarkupId( true );
    add( feedbackPanel );

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

    Button submitBtn = new IndicatingAjaxButton("submitBtn", form){
        @Override
        protected void onError(AjaxRequestTarget target, Form form) {
            target.addComponent( feedbackPanel );
        }
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form form) {
            // submit処理
        }
    });