Wicket Form 実装時のエラー対処 A partial update is not possible for a component that has renderBodyOnly enabled.


以下、エラーが出力されたので、対処方法をメモします。

  • エラー内容
ERROR [2016-06-05 18:05:39,706] org.apache.wicket.DefaultExceptionMapper: 
Unexpected error occurred! java.lang.IllegalStateException: 
A partial update is not possible for a component that has renderBodyOnly enabled. 
Component: [AppFeedbackPanel [Component id = nameFeedback]]
!
  • 原因 以下のようなコードを記述していました。
    setOutputMarkupId(true); でidを出力しようとしているのに、
    setRenderBodyOnly(true); でタグ自体を非表示にしようとしているため、
    エラーとなります。
    /**
     * Constructor
     *
     * @param id
     */
    public AppFeedbackPanel(String id) {
        super(id);
        setOutputMarkupId(true);
        setRenderBodyOnly(true);
    }
  • 対処
    setRenderBodyOnly(true); を削除しました。
    今回は詰みませんでしたが、詰む場合はsetRenderBodyOnly(true);は削除するとして、
    HTMLマークアップを修正する等、別の方法での対処が必要なのかも。
    以上です。

コメント