Как предотвратить StalePageException при использовании AbstractDefaultAjaxBehavior, вызванного другими компонентами JavaJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Как предотвратить StalePageException при использовании AbstractDefaultAjaxBehavior, вызванного другими компонентами Java

Сообщение Anonymous »

У меня есть страница, которая в основном представляет собой калитку, но на ней есть сторонний компонент сетки. Он загружает свои данные через URL-адрес, который я передаю в AbstractDefaultAjaxBehavior. Мы также вызываем второй AbstractDefaultAjaxBehavior из прослушивателя событий, привязанного к выбору строк в сетке. Этот URL-адрес скрыт и вызывается при проверке этой строки.
Проблема в том, что он не работает. Мы делали похожие вещи в других приложениях, и я не вижу, в чем разница. Кажется, что происходит то, что когда мы нажимаем, Wicket выдает StalePageException и отправляет перенаправление клиенту, который затем перезагружает страницу, уничтожая выбранные элементы. В журнале следующая ошибка:

Код: Выделить всё

org.apache.wicket.core.request.mapper.StalePageException: A request to page '[Page class = my.package.queue.modules.ReportQueue, id = 3, render count = 1]' has been made with stale 'renderCount'. The page will be re-rendered.
Проблема в том, что я не вижу, что я делаю иначе, чем в других местах, где эта стратегия работает. Похоже, что URL-адрес, который я получаю от getCallbackUrl(), содержит счетчик рендеринга, и я предполагаю, что когда вызываются другие события ajax, Wicket, вероятно, ожидает обновленного. Поскольку мне нужно выгружать их при загрузке страницы, и я не знаю, в каком порядке они вернутся, для меня непрактично продолжать запрашивать новый URL-адрес. Как я могу заставить его игнорировать счетчик рендеринга для этих вызовов ajax?
Определение поведения в Java:

Код: Выделить всё

        behaviorDisable = new AbstractDefaultAjaxBehavior() {
protected void respond(final AjaxRequestTarget target) {
//code redacted, but control never arrives here so it doesn't matter.
}
};

add(behaviorDisable);
String callback = String.valueOf((behaviorDisable.getCallbackUrl()));
hiddenfield = new HiddenField("callBackUrl", new Model(callback));
add(hiddenfield);
В JavaScript я проделал множество итераций с параметрами и всем остальным, но все они делают одно и то же. Вот текущий:

Код: Выделить всё

        Wicket.Ajax.get({
"u" :document.getElementById('callBackUrl').value
});
Мы используем jQuery 3.6.3 с wicket 6.
Прежде чем рекомендовать обновление, да, мы знаем, что он устарел. Наш клиент является правительственным учреждением и не любит обновляться, если его не вынудят серьезные нарушения безопасности или какая-либо другая внешняя сила. Мы не можем получить разрешение на обновление. Запланированы усилия по «модернизации», но их постоянно откладывают, поскольку буквально все имеет более высокий приоритет.

Подробнее здесь: https://stackoverflow.com/questions/783 ... or-trigger
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»