Wicket:无法阅读财产' Ajax'未定义的

时间:2017-05-23 12:14:01

标签: javascript ajax wicket

我在Wicket中有一个页面会抛出一个javascript错误,因为它不会在客户端加载Wicket库。我不知道为什么。生成的客户端代码如下:

        Wicket.Event.add(window, "domready", function(event) { 
        Wicket.Ajax.ajax({"u":"./web.TaskPage?4-1.0-modal~javascript~error~close","c":"modal_javascript_error_close5","e":"click"});
    .
    . (more code)
    . 
}

在服务器端,我有一个链接按钮:

public static Component createCloseBt() {
    AjaxLink<String> modalCloseBt = new AjaxLink<String>("modal-javascript-error-close") {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            IRSPage.closeModal(target);
        }
    };
    return modalCloseBt;
}

我得到的错误是:

  

web.TaskPage?4:148 Uncaught TypeError:   无法阅读财产&#39; Ajax&#39;未定义的       在HTMLDocument。 (web.TaskPage 4:148)       在火上(jquery-1.12.4-ver-1494329056398.js:3232)       at Object.fireWith [as resolveWith](jquery-1.12.4-ver-1494329056398.js:3362)       在Function.ready(jquery-1.12.4-ver-1494329056398.js:3582)       在HTMLDocument.completed(jquery-1.12.4-ver-1494329056398.js:3617)

我应该检查什么?为什么在这一点上我没有Wicket.Ajax.ajax?

感谢&#39; S

2 个答案:

答案 0 :(得分:0)

我看到的唯一原因是你在YourApplication.java中使用FilteringHeaderResponse。

如果您想将JavaScript文件放在页面HTML的底部(</body>之前),则使用FilteringHeaderResponse。如果您过滤掉了JavaScriptReferenceHeaderItems,但您也没有过滤掉OnDomReadyHeaderItem / OnLoadHeaderItem / OnEventHeaderItem然后可能发生这种情况。

答案 1 :(得分:0)

好吧,我发现了问题。这是一个行为组件,添加了覆盖Wicket对象的javascript代码。 1.5.5版本需要这样,但现在不需要。