Boa tarde Senhores,
Estou desenvolvendo um sistema JSF 2.0 + Primefaces pela primeira vez e estou me deparando com a seguinte situação:
Tenho um formulário e um Bean. Os campos do formulários são setados no objeto da bean e tudo funciona normalmente. Estou trabalhando com abas e, mesmo eu dando um new Object() no meu objeto da bean, NEM SEMPRE quando eu volto a aba, os campos do formulário são limpos (já chequei o update e também a função que dá o new object()). O que me leva a crer que se trata de cache do navegador, pois é bem inconstante. Visto isto, fui googlelizar hehe… encontrei a seguinte classe:
package utils;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.servlet.http.HttpServletResponse;
public class CacheControl implements PhaseListener {
private static final long serialVersionUID = 1L;
public PhaseId getPhaseId() {
return PhaseId.RENDER_RESPONSE;
}
public void afterPhase(PhaseEvent event) {
}
public void beforePhase(PhaseEvent event) {
FacesContext facesContext = event.getFacesContext();
HttpServletResponse response = (HttpServletResponse) facesContext
.getExternalContext().getResponse();
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Cache-Control", "no-store");
response.addHeader("Cache-Control", "must-revalidate");
response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT");
}
}
Devidamente registrada no faces-config.xml:
<lifecycle>
<phase-listener id="nocache">utils.CacheControl</phase-listener>
</lifecycle>
Porém, o problema persiste…
Alguém tem alguma sugestão ae?
Um abraço a todos!