Spring Web Flow предотвращает использование кнопки «Назад» - PullRequest
4 голосов
/ 09 сентября 2011

Поэтому я использую Spring Web Flow для проекта и хочу использовать атрибуты history = "discard" и history = "invalidate" для элементов.

Я разместил эти атрибуты там, где они мне нужны, однако, когда я пытаюсь проверить, работают ли они, перейдя к представлению после запуска атрибута history при переходе, он перенаправляет меня на страницу исключения.

org.springframework.web.util.NestedServletException: обработка запроса не удалась; вложенное исключение - org.springframework.webflow.execution.repository.FlowExecutionRestorationFailureException: возникла проблема с восстановлением выполнения потока с ключом 'e1s1'

Так точно, он говорит, что я удалил это состояние из истории, чтобы оно не могло его найти. Я действительно не понимаю, почему нет какого-то встроенного механизма для обработки этого, во-первых, но кроме этого, я не смог найти способ изящно обработать это исключение, чтобы я мог просто перенаправить их на страницу ошибки или было бы лучше просто отправить их туда, откуда они пришли.

<view-state id="page1">
    <transition on="gotoNextPage" to="page2" history="invalidate" />
</view-state>
<view-state id="page2"/>

Как такое поведение должно быть достигнуто, чтобы нажатие кнопки «Назад» на странице 2 не создавало исключение, а просто оставляло вас на странице 2?

1 Ответ

2 голосов
/ 10 марта 2012

Я много раз искал по этому вопросу.

В этом старом сообщении на форуме есть 2 решения (с примером кода).

Первое - поймать исключениеи отобразить страницу, которая использует javascript для forward() возврата на исходную страницу - фактически отменяя обратную.

2-е решение проверяет состояние потока и отправляет их в самый последний действительный снимок потока.

Я так же озадачен, как и вы, что нет готового решения.Каждый должен столкнуться с этой проблемой.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1013* для тех, кто заинтересован в отслеживании прогресса.

...