У меня есть следующий код в моем проекте (JSF1.2, RF 3.3.3 SR1, GF 3.0.1)
// Following code in PhaseListener
@Override
public void beforePhase(PhaseEvent event) {
if (event.getPhaseId() == PhaseId.RENDER_RESPONSE) {
HttpServletResponse res = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
res.addHeader("pragma", "no-cache, no-store, must-revalidate, max-age=0, s-max-age=0, proxy-revalidate");
res.addDateHeader("Expires", 0);
res.addHeader("cache-control", "no-cache, no-store, must-revalidate, max-age=0, s-max-age=0, proxy-revalidate");
}
}
Я тестировал приведенный выше код в IE, FF, Safari, и он работал нормально.
После обновления вышеуказанного проекта до JSF 2.0 (JSF2.0, RF 4.0.0 Final, GF 3.0.1) приведенный выше код не очищает кэш. Я попытался заменить addHeader на setHeader безуспешно.
Также я попытался реализовать приведенный выше код в фильтре, как указано здесь , но это не помогло.
Заранее спасибо,
Praneeth