Вы должны указать браузеру , а не кэшировать страницы JSF.Создайте Filter
, который отображается как @WebFilter(servletNames={"facesServlet"})
и выполняет следующую работу в методе doFilter()
HttpServletResponse response = (HttpServletResponse) res;
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(req, res);
. Это заставит браузер запустить новый запрос GET при нажатии кнопки назад.В противном случае он вернул бы только страницу из кэша, и тогда отправка формы не удалась бы, потому что состояние просмотра на стороне сервера было потеряно из-за аннулирования сеанса.