Я пишу свое первое приложение для калитки и столкнулся с моим первым блокпостом сегодня. Здесь проблема.
У меня есть страница, которая содержит AjaxSubmitLink. В событии onSubmit я загружаю панель, используя setResponsePage.
С домашней страницы моего приложения я могу перейти к вышеупомянутой странице двумя способами - либо по гиперссылке, либо путем переключения вкладки (используйте базовый ITab из расширений wicket), оба из которых вызывают один и тот же конструктор с идентичные аргументы.
Теперь, если я перехожу на страницу по гиперссылке, все работает нормально. Однако, если я использую вкладку для перехода на страницу, AjaxSubmitLink не загружает панель. Идет запрос Ajax, я вижу, что сервер его обрабатывает, но, похоже, обратный вызов не выполняется.
Еще одна странная вещь, которую я заметил, в последнем случае firebug не регистрирует мои Ajax-запросы на консоли. Он отлично регистрирует запросы в первом случае.
Я немного озадачен, какие-нибудь намеки, указатели или толчки?
Редактировать: код объявления ссылки.
editLink = new AjaxSubmitLink("editLink") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> masterForm) {
setResponsePage(new EditPage(programId));
}
};
Редактировать: я проверил запросы, сделанные с помощью fiddler, неудачные вызовы Ajax возвращают 302 вместо 200.
ОБНОВЛЕНИЕ:
Я вроде нашел обходной путь. Информация о скрипаче привела меня к поиску поведения setResponsePage, которое привело меня к https://issues.apache.org/jira/browse/WICKET-1703.
В любом случае, поскольку мне не требовался POST-запрос для ссылки, вместо этого использовался GET, чтобы получить желаемое поведение.
Интересная находка с использованием fiddler: тип содержимого отправленного запроса - multipart / form-data, а не application / x-www-form-urlencoded в ошибочном случае.
Я все еще не совсем понимаю актуальную проблему, благодарю за любые объяснения.