JSF 2 AJAX кэш ответа - PullRequest
       6

JSF 2 AJAX кэш ответа

1 голос
/ 27 декабря 2011

Когда я использую JSF 2 Ajax, как я могу контролировать, кэшируется ли ответ.Если это возможно, как я могу контролировать дату окончания ответа AJAX?Спасибо!- Чарли

1 Ответ

0 голосов
/ 29 декабря 2011

Как обычно для приложений JSF, заголовки кэширования устанавливаются через Filter, который является частью уровня сервлета.Для этого уровня не существует автоматической разницы между обычным запросом и запросом AJAX.

Однако JSF помечает запросы как запросы AJAX с помощью параметра запроса javax.faces.partial.ajax.(см. раздел спецификации JSF 14.2.4)

Если вы, таким образом, хотите специально контролировать заголовки ответов для всех запросов JSF AJAX, вы должны сделать что-то вроде:

@WebFilter(filterName="httpHeaders", urlPatterns="/*")
public class HTTPHeaders extends Filter {

    @Override
    public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {

        if (request.getParameter("javax.faces.partial.ajax") != null) {
            response.setHeader("Cache-Control", "...");
            response.setDateHeader ("Expires", "...");
            response.setHeader("Pragma", "...");
        }

        chain.doFilter(request, response);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...