Проблема с: Что происходит при нажатии кнопки "Назад браузера" → открывается страница, чья viewcoped-managedbean уже уничтожена → отправить запрос с commandButton с этой страницы с выбором селекторной записи?
Что я ожидаю: Связанный viewcope-managebean воссоздается, получает выбор записи по сетке и обрабатывает их так, как если бы кнопка обратного просмотра браузера никогда не включалась.
Что я испытываю: Связанный viewcope-managebean НЕ воссоздается, не получает селекторные записи. Необходимо повторно ввести URL-адрес или F5 после нажатия кнопки "Назад", чтобы он снова работал правильно.
Итак, здесь сценарий успеха, все beans просматриваются beans:
- GET page1.xhtml → page1Bean создан, запрашивает данные и т.д. в @PostConstruct
- проверьте/выберите несколько записей из данных, нажмите кнопку процесса
- page1Bean process method хранит выбранные записи в объекте flash и перенаправляет на страницу2.xhtml
- page1Bean destroy, page2Bean created, и в методе прослушивания preRenderView извлекает выбранные записи из объекта flash и обрабатывает их
- нажмите кнопку "перейти на главную страницу", чтобы перенаправить на страницу1.xhtml и page2Bean уничтожен, страница1Bean снова создана.
- цикл от 2 до 5 все еще выполним
Теперь это ошибочный сценарий, включающий кнопку возврата браузера (разные вещи, начиная с №6):
- GET page1.xhtml → page1Bean создан, запрашивает данные и т.д. в @PostConstruct
- проверьте/выберите несколько записей из данных, нажмите кнопку процесса
- page1Bean process method хранит выбранные записи в объекте flash и перенаправляет на страницу2.xhtml
- page1Bean destroy, page2Bean created, и в методе прослушивания preRenderView извлекает выбранные записи из объекта flash и обрабатывает их
- нажмите кнопку браузера назад. 2Bean не уничтожен, страница1Bean не создается.
- проверьте/выберите несколько записей из данных, нажмите кнопку процесса
- выполняется метод page1Bean (странно, потому что страница1Bean должна быть уничтожена), но не может видеть сделанные записи и перенаправлять на page2.xhtml
- page1Bean не уничтожается (нет выхода журнала), page2Bean не создается (поскольку он не был уничтожен), выполняет прослушиватель preRenderView, как обычно, но на этот раз никакие выбранные записи в объекте flash
Возможно ли иметь нормальный опыт (как будто без кнопки браузера) с viewcope- beans с помощью кнопки браузера?
Здесь моя зависимость:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.1.3</version>
<scope>compile</scope>
</dependency>
Поделитесь своими идеями!