2010-09-30 4 views
1

J'ai un backing bean (disons MyPageBean) avec la portée de la requête, mais il semble être en session car, en naviguant mon application, quand je visite la page myPage, je reçois toujours le même instance. J'utilise JSF 1.2, 1.8.2 et Icefaces JBoss 5.1.0Demande de backing bean ... pas en demande

Répondre

0

est-il pas seulement votre navigateur Web ou proxy qui est mise en cache de manière agressive les pages Web?

Créer une Filter qui effectue les opérations suivantes dans doFilter() méthode pour demander au client de pas cache la réponse HTTP:

HttpServletResponse hsr = (HttpServletResponse) response; 
hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
hsr.setDateHeader("Expires", 0); // Proxies. 
chain.doFilter(request, response); 

et la carte en web.xml comme suit:

<filter> 
    <filter-name>cacheFilter</filter-name> 
    <filter-class>com.example.CacheFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>cacheFilter</filter-name> 
    <servlet-name>facesServlet</servlet-name> 
</filter-mapping> 

en supposant que vous avez mappé l'instance FacesServlet sur <servlet-name> de facesServlet.

+0

BalusC, merci pour votre réponse. – Massimo

+0

Mais votre solution ne fonctionne pas. – Massimo

+0

Comment avez-vous confirmé que le bean que la page utilise est réellement dans la portée de la requête? Comment avez-vous confirmé que vous récupérez exactement la même instance à chaque fois? Avez-vous fait le systemoutprintln d'un pauvre? Lequel et où? Ou avez-vous exécuté un débogueur avec un point d'arrêt sur le constructeur de bean? Avez-vous déterminé le '# {requestScope}' et le '# {sessionScope}'? Etc. – BalusC

0

Dans ICEFaces, la portée de la demande s'étend sur les soumissions partielles. Ainsi, si votre application n'actualise jamais la totalité de la page et n'utilise que des soumissions partielles, vous pouvez rencontrer cela.
Ne pas utiliser la soumission partielle dans la navigation devrait résoudre votre problème.