簡體   English   中英

Wicket-使用AJAX刷新組件-文檔元素后出現垃圾

[英]Wicket - refresh component using AJAX - junk after document element

我正在嘗試使用AJAX刷新頁面上的組件。 這是一些代碼:

    private class MyAjaxBehavior extends AbstractDefaultAjaxBehavior {
        private final DataView<Something> dataView;

        private MyAjaxBehavior(DataView<Something> dataView) {
            this.dataView = dataView;
        }

        @Override
        protected void respond(AjaxRequestTarget target) {
            // here I do something with dataView...
            MarkupContainer container = dataView.getParent();
            dataView.setOutputMarkupId(true);
            container.setOutputMarkupId(true);
            dataView.renderComponent();
            container.renderComponent();
            target.addComponent(container);
        }
    }

我可以使用javascript wicketAjaxPost(<callback url>)來調用wicketAjaxPost(<callback url>) respond()方法。 但是我的頁面上沒有任何變化。 當我打開javascript控制台時,看到以下錯誤: junk after document element出現junk after document element 當我重新加載頁面時,我的更改是可見的,所以這只是關於AJAX的內容。 我究竟做錯了什么? 我認為這是因為我的HTML無效; 那么如何使用戶的瀏覽器忽略驗證錯誤?

我正在使用Wicket 1.4.22。

不要調用#renderComponent(),它會在將容器呈現到ajax響應中時由wicket調用。

從#respond()調用#setOutputMarkupId(true)為時已晚,組件必須在第一個Ajax請求之前輸出其markupId。 您可以從行為的#onConfigure()中調用container#setOutputMarkupId(true)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM