我正在寫我的第一個wicket應用程序,並且今天遇到了我的第一個路障。這是問題。 我有一個包含AjaxSubmitLink的頁面。在onSubmit事件中,我使用setResponsePage加載了一個面板。Wicket - SetResponsePage callback not firing
從我的應用程序的主頁,我可以通過兩種方式導航到上述頁面 - 通過超鏈接或切換選項卡(使用來自wicket-extensions的基本ITab),兩者都調用相同的構造函數具有相同的論點。
現在如果我使用超鏈接導航到頁面,一切工作正常。但是,如果我使用選項卡導航到頁面,則AjaxSubmitLink不會加載面板。有一個Ajax請求被創建,我可以看到服務器正在處理它,但它就像沒有執行回調。
我注意到另一個奇怪的事情,在後一種情況下,firebug不會在控制檯上記錄我的Ajax請求。它在前一種情況下記錄請求就好了。
我有點難倒在這裏,任何提示,指針或輕推?
編輯:聲明鏈接的代碼。
editLink = new AjaxSubmitLink("editLink") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> masterForm) {
setResponsePage(new EditPage(programId));
}
};
編輯:我檢查,不成功的Ajax調用返回302,而不是200
更新與小提琴手提出的要求:
我有點找到了一個解決方法。提琴手信息導致我搜索setResponsePage行爲,這導致我到https://issues.apache.org/jira/browse/WICKET-1703。
無論如何,因爲我沒有嚴格地需要鏈接的POST請求,所以使用GET來取得所需的行爲。
使用fiddler有趣的發現:發送請求的內容類型是multipart/form-data,而不是application/x-www-form-urlencoded在錯誤的情況下。
我還是在黑暗中的實際問題,欣賞任何解釋。
'setResponsePage()'使用的網頁,而不是Web組件(在這種情況下面板)。我們可以看到一些代碼來幫助你嗎? – Marcelo
提供的代碼。我不確定要發佈哪個部分。另外小提琴手告訴我,請求返回302。 – Sans
如果你所做的只是重定向到不同的頁面,那麼使用AjaxSubmitLink的目的是什麼?如果您必須重新加載完整的頁面,爲什麼不使用正常的SubmitLink? –