2009-02-01 6 views
1

Je joue avec une petite application de couture qui a une portée de session. La dernière méthode est l'envoi en tant que courrier. Comment puis-je invalider ma session après l'envoi du courrier? À l'heure actuelle, lorsque l'utilisateur appelle à nouveau l'URL initiale, la session est toujours active et toutes les données de formulaire remplies précédemment sont toujours présentes.Comment invalider une session POJO de couture

J'ai trouvé des exemples comment faire cela avec les conversations et ejb, mais pas avec les POJOs et les sessions.

Merci, Rory

Répondre

1

Session.instance() invalide().

3

Par ISASI's answer vous pouvez utiliser ce code pour annuler la session:

Session.instance().invalidate(); 

En réponse à votre suivi « question » (qui vous avez ajouté comme une réponse, bizarrement). Pour fermer la session après avoir informé l'utilisateur de la réussite, créez une page "Confirmer" et redirigez-la en fonction d'une règle associée au résultat "Succès". Créez ensuite une action de page pour invalider la session.

<page view-id="/process/confirm.xhtml" action="#{emailManager.completeSession}"> 

Techniquement, la séance sera fermé beofre rendu de la page, de sorte que peut créer un problème de synchronisation en ce qui concerne l'accès aux données de session, de sorte que vous devrez peut-être pirater autour des paramètres de la page pour compenser. C'est parce que vous le faites fondamentalement "faux" en utilisant une session par email. Il vaudra beaucoup mieux utiliser une conversation car il y a une annotation @End qui termine la conversation après avoir rendu la vue - beaucoup plus facile.

Vous devrez passer à l'utilisation des conversations une fois que votre application aura impliqué plus d'une tâche car tout état entre les tâches sera perdu. J'imagine que cela arrivera assez rapidement. Ces problèmes de synchronisation et de gestion d'état sont le problème que les conversations Seam ont été conçues pour résoudre.

Questions connexes