Я использую компонент AjaxFallbackLink для ссылки Ajax. Когда я нажимаю на ссылку, URL-адрес выглядит примерно так ./myPage?1-1.ILinkListener-xxx. И когда я на самом деле нажимаю ссылку, запрос Ajax выглядит примерно так: ./myPage?1-1.IBehaviorListener-xxx.Wicket AjaxFallbackLink поведение
Кажется, что Wicket JavaScript каким-то образом изменил URL-адрес от ILinkListener до IBehaviorListener. Интересно, так ли это, и почему?
Иногда при определенных обстоятельствах ILinkListener в URL-адресе не изменяется на IBehaviorListener, когда запрос отправляется браузером, что приводит к тому, что NullPointerException как параметр AjaxRequestTarget в функции обратного вызова имеет значение null. Я не смог воспроизвести это. Просто задайтесь вопросом, какие настройки браузера могут привести к этому. Большое спасибо.
Спасибо Мартину. Как вы уже упоминали, в случае AjaxFallbackLink не может быть AJAX. И это как раз последняя часть моего вопроса, как это сделать в современном браузере, т. Е. AJAX, но JavaScript включен? На всякий случай вы знаете, как это сделать. – Yuci
Это может быть вызвано различными проблемами, например. переопределить или дублировать ссылку на jQuery (JS-библиотеку) или заменить функцию onClick на вашу ссылку, если вы добавите другое поведение или остановите профагацию события JS или что-то в этом роде. Я бы проверял: 1) Есть ли только один jQuery в заголовке HTML, 2) Нет ли другого поведения в вашей ссылке ?, 3) Есть ли только одно событие onClick, прикрепленное в заголовке HTML к вашей ссылке? 4) Нет ли каких-либо общих событий onclick, связанных со всеми HTML-ссылками? –
В моем случае ожидается поведение Ajax и действительно работает как ожидается во всех моих браузерах; но для некоторых пользователей вместо этого используется общая ссылка в соответствии с журналами доступа Tomcat. Таким образом, единственное различие в стороне браузера. Теперь я пытаюсь отключить Ajax, но с включенным JavaScript. Я вернусь к этому позже. – Yuci