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

Struts 1 Java Discussion :

Perte des valeurs d'un Form déclaré en scope "session"


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Perte des valeurs d'un Form déclaré en scope "session"
    Bonjour,
    Je travaille sur une application assez importante et, dans le cadre du développement d'un nouveau module, je rencontre des problèmes que je n'avais jamais eu auparavant.

    Quelques soient les actions déclarées dans mon struts config, utilisant un form-bean, je perds les données du formulaire dès que je passe sur une nouvelle action. Je précise. J'ai une première action qui liste des collections d'objets (ListView). Une suivante permet d'en créer une instance (createView). Ces deux actions utilise des form-bean de même type et de même nom à chaque fois déclarés avec un scope="session" de façon à pouvoir exploiter les données d'une page à une autre.

    Hors quand j'arrive dans ma méthode createView de la classe 'action', le formulaire actionForm a toutes ses valeurs à null.

    Je pense avoir réaliser tous mes fichiers de config comme dans les autres modules.

    Est-ce que quelqu'un aurait une suggestion pour me permettre de trouver une solution ?
    Merci.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Les propriétés ne seraient-elles pas réinitialisées dans la méthode reset de l'ActionForm par hasard ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Petite précision. Dans ma méthode ListView (qui affiche la liste des instances d'objets) si je rajoute le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().setAttribute("compteOpeForm", compteOpeForm);
    je ne rencontre pas ce problème.

    J'en conclue alors que mon form ne reste pas en session si je ne le force pas alors que l'attribut scope="session" devrait, me semble-t-il, suffire.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Les propriétés ne seraient-elles pas réinitialisées dans la méthode reset de l'ActionForm par hasard ?
    Si effectivement. Du coup je ne sais pas pourquoi cette méthode est appelée à chaque fois que je charge la page.

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    La méthode reset est automatiquement appelée à chaque nouvelle requête, avant que les données soient chargées via les setters.
    Il ne faut donc pas réinitialiser les collections d'objets dans la méthode reset.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Je n'appelle pas explicitiment la méthode reset et ne l'ai pas implémenter pour ma sous classe ActionForm.

    J'ai changé le nom de mon form-bean et maintenant je n'ai plus de problème. Pour l'instant je vais écrire plusieurs pages et voir après si la fonctionnement correct n'est pas dû à mon cache de navigateur désormais.

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par tyzef Voir le message
    Je n'appelle pas explicitiment la méthode reset et ne l'ai pas implémenter pour ma sous classe ActionForm.
    Vu ta réponse précédente, j'avais compris que tu avais implémenté la méthode reset dans l'ActionForm.
    Si tu n'en as pas codé, c'est que ton problème ne vient pas de là.

    Citation Envoyé par tyzef Voir le message
    J'ai changé le nom de mon form-bean et maintenant je n'ai plus de problème.
    Etonnant.

    Il faudrait vraiment t'assurer que le scope du form-bean n'est jamais mis à request, que ce soit dans le struts-config.xml ou dans un tag Struts via l'attribut scope, ou même dans une Action via un request.setAttribute.
    Je pense que c'est la seule explication du dysfonctionnement.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    J'ai mis du temps à donner des nouvelles mais je voulais avancer voir si je rencontrais à nouveau ce problème. Dès lors que j'ai eu 2 form-bean déclarer, je n'ai plus eu aucun problème; Même si j'en retire un par la suite.

    C'est un peu incompréhensible.

    (j'hésite à marquer résolu)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/06/2009, 21h47
  2. [pointeur][passage par référence] Perte des valeurs.
    Par ced600 dans le forum Débuter
    Réponses: 13
    Dernier message: 05/09/2008, 18h44
  3. Perte des valeurs de $_POST avec onsubmit
    Par tisstt dans le forum Langage
    Réponses: 6
    Dernier message: 20/06/2008, 11h49
  4. problème à passer des valeurs d'une form à l'autre
    Par gibea00 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/08/2007, 13h45

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