Я реализовал ответ на этот вопрос: >Тайм-аут сеанса и обработка ViewExpiredException в ajax-запросе JSF/PrimeFaces
Когда запрос AJAX выполнен и есть ViewExpiredException, он отображает мою страницу с истекшим сроком сеанса, на которой есть ссылка для перехода на страницу входа. Но когда вы снова входите в систему, это показывает мне это:
<partial-response id="j_id1">
<changes>
<update id="j_id1:javax.faces.ViewState:0">
<![CDATA[ -4163638607746842558:-2237921975175382496 ]]>
</update>
</changes>
</partial-response>
Когда я нажимаю F5, отображается обычный HTML-контент. Почему это происходит и как я могу это решить?
Изменить: чтобы уточнить, после входа в систему я попадаю на ту же страницу, где произошло ViewExpiredException.
if (t instanceof ViewExpiredException) { nav.handleNavigation(fc, null, "/session_expired.xhtml?faces-redirect=true"); }
На этой странице написано, что сеанс истек, и есть ссылка, по которой пользователь может щелкнуть, чтобы перейти на страницу входа, но не имеет значения, щелкнете ли вы по ссылке или зайдите сами на страницу входа. После входа в систему отображается частичный ответ. Или я ошибаюсь, и этот ответ относится к моему вопросу? - person Wesley Egbertsen   schedule 05.11.2015FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
до того, как он сделает handleNavigation, и теперь я больше не получаю частичный ответ. - person Wesley Egbertsen   schedule 05.11.2015