Кнопка возврата в браузере не очищает старые значения bean-компонента - PullRequest
5 голосов
/ 16 сентября 2011

Мы используем JSF2, у нас есть страница с полями формы с командной кнопкой, связанной с компонентом поддержки.

Когда мы открываем страницу формы, вводим значения и отправляем, компонент поддержки получает правильные значения и переносит их на следующую страницу. Если я нажимаю кнопку возврата в браузере, она переходит на предыдущую страницу с формой. Если я ввожу новые значения в форму и отправляю, компонент поддержки все еще получает старые значения в Шаге 1.

Ответы [ 2 ]

6 голосов
/ 16 сентября 2011

Это странно.Возможно, ваш компонент помещен в область действия сеанса и / или браузер запросил страницу из кэша.Для начала вы хотели бы отключить кэш браузера для всех динамических страниц с помощью фильтра , который устанавливает правильные заголовки ответа.

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;

    if (!req.getRequestURI().startsWith(req.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc)
        res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
        res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
        res.setDateHeader("Expires", 0); // Proxies.
    }

    chain.doFilter(request, response);
}

Сопоставьте этот фильтр с именем сервлета FacesServlet или по тому же шаблону URL.

И последнее, но не менее важное: не помещайте компоненты формы в область сеанса.Поместите их в запрос или просмотрите область.

0 голосов
/ 23 марта 2012

внимательно изучите JSF, JSF2.0 в Glassfish отлично работает, если у вас есть видоискатели и нажмите браузер назад / далее ссылки JSF тщательно загрузил предыдущую страницу, также вы можете увидеть свои данные и отправить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...