У меня есть веб-приложение, использующее структуру Wicket. Он имеет форму, которая берет вход пользователя и отправляется, перенаправляется на другую страницу. После отправки формы и нажатия кнопки возврата браузера предыдущая форма извлекается из кеша с введенными значениями. Мне нужно переопределить это поведение и перенаправить на последнюю страницу (оставайтесь на той же странице), когда нажата кнопка назад. Возможно ли это в Wicket? Если да, пожалуйста, помогите мне, как это сделать. Спасибо.Wicket - перенаправление на ту же страницу при нажатии кнопки назад браузера
ответ
Wicket обрабатывает URL-адреса, поэтому если запрашивается предыдущая страница, она распознается идентификатором страницы, который по умолчанию добавляется к URL-адресу, например. http: /dummyexample.com? 1
Что я использую для решения этой проблемы - это механизм потока, который содержит состояние объекта модели внутри него. Например. у вас есть модельный объект типа MyFlow, содержащий поле 'String currentState'. В этом случае, если вам нужна неправильная страница, которая не принадлежит к стадии вашего потока, вы можете перенаправить на соответствующую страницу с помощью controcutor или onIntialize(), бросая «RestartResponseException», что вызывает перенаправление на новую страницу.
Просто используйте Ajax submit, таким образом, пользователь не может вернуться к форме ввода через кнопку «Назад».
Я уже использую AjaxSubmitLink для отправки данных. Но все же это не решает проблему. – kasper360
- 1. перезагрузить страницу браузера при нажатии кнопки «Назад»
- 2. Можно ли перезагрузить одну и ту же страницу при нажатии кнопки браузера назад?
- 3. Как перейти на новую страницу при нажатии кнопки «Назад» браузера
- 4. перенаправление на предыдущую страницу при нажатии кнопки
- 5. Как автоматически обновлять страницу при каждом нажатии кнопки браузера назад?
- 6. Asp.net Проблема при нажатии кнопки назад браузера
- 7. Пропустить страницу при нажатии кнопки «Назад», WP7
- 8. Публикация и перенаправление на ту же страницу
- 9. перенаправление от действия на ту же страницу
- 10. Перенаправление на ту же страницу, используя JSP
- 11. Как отобразить текущую страницу даже после нажатия кнопки браузера назад
- 12. Htaccess перенаправление на ту страницу
- 13. Как обновить страницу ASP.NET MVC при нажатии кнопки «Назад назад»
- 14. Подтвердить страницу при нажатии назад
- 15. bootstrap 3 закрыть Modal при нажатии кнопки назад браузера
- 16. Expire веб-страницы при нажатии кнопки браузера кнопку назад
- 17. Как предотвратить мерцание при нажатии кнопки браузера назад
- 18. Показывать всплывающее сообщение при нажатии кнопки браузера Назад Использование Javascript
- 19. перенаправление на другую страницу при нажатии кнопки отправки
- 20. Обновить браузер при нажатии кнопки «Назад» JS
- 21. перейти на конкретную страницу при нажатии кнопки назад
- 22. Нажатие кнопки «Назад» и посадку на странице с переадресацией таймаута на ту же страницу
- 23. Возврат/Перенаправление на ту же страницу после авторизации Twitter?
- 24. Как обновить страницу при нажатии кнопки возврата браузера?
- 25. Как перезагрузить веб-страницу при нажатии кнопки браузера в asp.net
- 26. Отключить кнопку отправки на странице при нажатии кнопки «Назад назад»
- 27. Обновить страницу с сервера при нажатии кнопки от браузера
- 28. Ссылки Перенаправление на ту страницу
- 29. Переадресация на страницу с ошибкой при нажатии кнопки «Обновление браузера»
- 30. Как перезагрузить текущую страницу при нажатии кнопки пользователя браузера
Спасибо за ответ Martin. Но форма и ее данные сериализуются перед перенаправлением на следующую страницу, а при нажатии кнопки «Назад» браузера Wicket десериализует и возвращает ту же форму. Поэтому конструктор или onInitialize() не будет вызываться. Как проверить текущее состояние в этом состоянии? – kasper360
Вы имеете право на сериализацию. Во всяком случае, я уже решил аналогичную ситуацию. Я отвечу позже, у меня нет этого проекта, чтобы увидеть мое реальное решение и поделиться им. Но я предполагаю, что я добавил хэш потока в URL-адреса, и в пользовательском сеансе есть карта, где я ищу последнее состояние объекта, чтобы предотвратить проблему сериализации. –
Улучшение ответа Мартина вместо того, чтобы бросать «RestartResponseException» внутри конструктора или onInitialize(), бросая его внутри onBeforeRender(), выполняет свою работу. onBeforeRender() гарантированно будет вызываться, когда страница будет снова построена, а также десериализована. – kasper360