Как заставить компоненты JSF на предыдущей странице перерисовываться, когда пользователь нажимает кнопку "Назад"?

У меня есть страница поиска для внутреннего веб-приложения, на котором есть несколько компонентов JSF. Когда пользователь нажимает на форму отправки, ряд результатов отображаются со ссылками на другие страницы. Моя проблема заключается в том, что при нажатии на одну из этих ссылок, а затем на кнопку "Назад", на предыдущей странице отсутствует информация, введенная в форму. Однако, если страница обновляется, компоненты перерисовываются со всей видимой информацией.

Есть ли способ заставить компоненты обновляться или страница обновляется автоматически? (Я не хочу отправлять еще один запрос на сервер. Я хочу использовать страницу из кэша браузера, что, по-видимому, и происходит. Я подтвердил с помощью Firebug, что при обновлении браузер не отправляет запрос POST. I в первую очередь хочу чтобы компоненты перерисовывались как были.)

Я читал много похожих вопросов здесь и в других местах, но ни один из них, похоже, не нашел ответа. Возможно, я упускаю что-то очевидное.

1 ответ

Решение

Смотрите ответ здесь:

javax.faces.application.ViewExpiredException: представление не может быть восстановлено

В частности, часть о добавлении фильтра с:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);

Это заставит страницу быть перезагруженной, когда пользователь использует кнопку "Назад".

Другие вопросы по тегам