IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

@keepAlive & <redirect />


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut @keepAlive & <redirect />
    Bonjour,

    Comment peut-on contourner le fait que le @keepAlive ne fonctionne pas lorsque la balise <redirecte/> est présente dans le navigationCase avec un bean en request?

    Je m'explique:
    Je veux implémenter une fonctionnalité qui est composée de plusieurs étapes (pages). toutes les étapes utilisent le même managed-bean qui est en scope request avec une annotation @keepAlive.

    ça marche quand:
    1-) managed-bean en scope session && <redirecte/>.
    2-) managed-bean en scope request sans le redirecte <redirecte /> ?
    mais ça ne fonctionne pas si le bean et en request et qu'il y a un redirecte dans le faces-config


    Quelqu'un aurait une idée de la façon dont on peut contourner ce problème ?

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    Ce n'est pas un problème, c'est le comportement normal...

    Pourquoi veux-tu pouvoir faire un redirect et utiliser ce composant ?
    L'utilisation normal c'est une déclaration dans la request et l'objet est propagé de requête en requête... si tu fais un redirect, tu casses la succession des requêtes donc ça ne fonctionnera plus c'est certain.
    Rien ne sert d'utiliser ce composant si tu met ton bean en session... puisqu'il n'y aura jamais qu'une seule instance de ton bean.

    La solution si tu dois obligatoirement faire un redirect, c'est de mettre l'objet qui t'intéresse dans la session avant l'appel et de le récupérer ensuite (je me sers de cette solution notamment pour les affichages dans des servlets).

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut
    j'ai rajouté le <redirecte /> juste pour que l'URL soit mise à jour dans le navigateur. j'ai remarqué que ce n'est pas le cas si je ne mets pas de redirecte.

    Et puis, J'aimerais éviter de passer par le scope session.

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux expliquer ce qui ne marche pas?? le bean est réinitialisé?

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut
    Oui, le bean est réinitialisé malgré le @keepAlive

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par soucine Voir le message
    Oui, le bean est réinitialisé malgré le @keepAlive
    et pourquoi ça ne marche pas, tu change de page, le keepalive est fait pour pouvoir utiliser un bean entre plusieurs requete ajax, si tu change de page, c'est comme un nouveau context.
    D'ailleurs dans JSF 2.0, il y'a un nouveau scope: page dont le fonctionnement est similaire à keepAlivE.

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 154
    Par défaut
    Quand tu utilises redirect, tu créés une nouvelle request... Ça équivaut à cliquer sur un lien.

Discussions similaires

  1. [VB.NET]Double redirection.
    Par CammCamm dans le forum ASP.NET
    Réponses: 9
    Dernier message: 24/11/2003, 15h11
  2. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 09h36
  3. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo