Есть ли в калитке 1.4 способ «пропустить» страницу в карте страницы, когда пользователь перемещается с помощью кнопок «Назад» и «Вперед»?
Простое удаление страницы из карты страниц создает исключение: org.apache.wicket.protocol.http.PageExpiredException: не удается найти отображаемую страницу в сеансе [pagemap = null, componentPath = 3, versionNumber = 0]
Вот мой пример использования:
У меня есть страница создания отчета. Пользователь нажимает кнопку для подтверждения отчета и перенаправляется на ожидающую отчет страницу, на которой отображается ход процесса отчета до тех пор, пока фактический отчет не будет сгенерирован заново. Затем пользователь перенаправляется на страницу отчета.
страница создания отчета -> ожидающая отчета страница -> страница результатов отчета.
Как только отчет сгенерирован, я не хочу, чтобы пользователь мог переходить назад (и пересылать) на страницу отчета. Я попытался перейти на «страницу создания отчета», когда пользователь перешел на страницу отчета.
Ниже в onBeforeRender () ожидающей страницы отчета.
@Override
public void onBeforeRender() {
if (!reportPending && previousPage != null)
{
RequestCycle.get().setRedirect(true);
RequestCycle.get().setResponsePage(previousPage);
}
super.onBeforeRender();
}
В I.E. все работает нормально, но затем я получаю «страницу создания отчета», отображаемую дважды, когда пользователь возвращается дважды. страница результатов отчета - (назад) -> страница создания отчета - (назад) ->) страница создания отчета. Не идеально.
В Firefox каждый раз, когда я нажимаю кнопку «Назад», я бесконечно получаю «страницу создания отчета». По сути, это означает, что кнопка «Назад» бесконечно указывает на ожидающую отчет страницу.
Есть ли способ удалить отчет, ожидающий рассмотрения, из истории просмотров (страницы) без исключения?
Любое понимание приветствуется. Заранее спасибо.