Ca n'a aucun intérêt pour lui. Sa session ayant expiré, il n'a plus de viewRoot, ce qui fait que JSF ne peux pas travailler. Comme tu l'a suggéré, la solution ou le client décide de lui même de naviguer en fin de session est préférable.
Version imprimable
montre le code ?
qu'est ce qui ne fonctionne pas?
non, je veut dire que le probleme est toujours present:
lorsque je clique sur le bouton sessionEx je retrouve bien ma page de login mais l'acion de login ne se fait que lorsque je refraichit la page manuellement.(ViewRoot est vide)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <rich:modalPanel id="sessionExpiredPanel"> <f:facet name="header">Session expired</f:facet> <rich:panel style="border:0;text-align:center;"> <h:form><h:commandLink value ="sessionEx" action="#{userLogin.Deconnexion}" /></h:form> </rich:panel> </rich:modalPanel> <a4j:region> <a4j:form> <a4j:poll id="sessioncheck" interval="65000" reRender="sessioncheck" /> </a4j:form> <script type="text/javascript"> A4J.AJAX.onExpired = function(loc,expiredMsg){ Richfaces.showModalPanel('sessionExpiredPanel',{left:'auto',top:'auto'});} </script> </a4j:region>
donc à l'expiration de session, la modalPanel se lance, tu clique sur le button la redirection ne se fait pas?
montre le code de ton action.
le code de la méthode de déconnexion?
tu peux faire seulement:
Code:session.invalidate();
Non ça marche bien comme ça pour moi et juste en faisant:
Si la navigation se passe bien; il n'y a aucune raison pour que ça ne marche pas..Code:HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
salut sniper,
je pense que j'ai trouvé une solution:j'ai trouvé qu'il vaut mieux est de revenir au mode compatibilité JSF 1.1 ;je ne sait pas pourquoi mais en ajoutant
dans web.xml le code suivant, je n'ai plus d'erreur:
Code:
1
2
3
4 <context-param> <param-name>com.sun.faces.enableRestoreView11Compatibility</param-name> <param-value>true</param-value> </context-param>
tu n'a pas ajouté ça:
Code:
1
2
3
4 <context-param> <param-name>org.ajax4jsf.handleViewExpiredOnClient</param-name> <param-value>true</param-value> </context-param>
Si tu utilises la solution Richfaces, vaut mieux l'utiliser..