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 :

variables de session pas bonne


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut variables de session pas bonne
    Je rencontre un problème vraiment bizzard, je m'explique :

    J'ai une pop up qui permet de sauvegardé une affaire, dans cette affaire il y a une entité requerant qui possède une adresse

    J'ai dans mon onglet requerant mis la possibilité de définir plusieurs adresse à ce requérant.

    J'utilise donc les mêmes champs suivant pour ajouter une nouvelle adresse à l'adresse principale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <ice:outputText value="Rue"></ice:outputText>
    <ice:inputText value="#{sessionBean.selectedRequerant.adresse.rue}"
      id="requerantRue" required="true" style="width:300px"></ice:inputText>
      <ice:outputText value="*" style="color: red;"></ice:outputText>
     
    <ice:message style="color: red;" id="requerantRueEmptyError"
      for="requerantRue" />
     
    <ice:outputText value="No de rue"></ice:outputText>
     
    <ice:inputText value="#{sessionBean.selectedRequerant.adresse.noDeRue}"
        id="requerantNoRue" required="true" style="width:300px">
    </ice:inputText>
     
    <ice:outputText value="*" style="color: red;"></ice:outputText>
    <ice:message style="color: red;" id="requerantNoRueEmptyError"
       for="requerantNoRue" />
    <ice:outputText value="No postal , Localite"></ice:outputText>
    <ice:selectInputText id="AutoCmpTxtFaceNpa" rows="20"
       width="300" required="true"
       value="#{sessionBean.requerantNpaLibelle}"
      valueChangeListener="#{sessionBean.selectLocaliteNpaInputValueChanged}"
       listVar="npaLocalite" listValue="#{sessionBean.localiteMatch}">
     <f:facet name="selectInputText">
      <ice:panelGrid columns="3" columnClasses="npa,localite">
       <ice:outputText id="AutoCmpCty" value="#{npaLocalite.npa}" />
       <ice:outputText id="AutoCmpSt" value="#{npaLocalite.nom}" />
    </ice:panelGrid>
    </f:facet>
    </ice:selectInputText>
    Dans ma méthode saveOrUpdate j'ai le code suivant qui va sauvegardé mon affaire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    try{ 
      selectedAffaireBean.getAffaire().setRequerant(selectedRequerant);
     Affaire added = remoteAffaireDao.save(selectedAffaireBean
     	         .getAffaire());
     FaceesContext.getCurrentInstance().getExternalContext().getSessionMap().put("affaire", added);
     LOG.debug("PUTING AFFAIRE ADRESSE INTO THE SESSION : " +   added.getRequerants().iterator().next().getAdresse().toString());
    Jusque la tout va bien l'affaire est correctement puté en session .

    Lorsque j'ajoute une adresse secondaire l'action qui est executé est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    public void addRequerantLinkedAdresse(ActionEvent event) {
     if (selectedRequerant != null) {
        Adresse adresse = new Adresse();
        String [] splited = this.requerantNpaLibelle.split(",");
        String npa = "";
        String localite = "";
        if (splited.length == 2) {
            npa = splited[0];
            localite = splited[1];
        }else {
           npa = requerantNpaLibelle;
        }
        adresse.setLocalite(localite);
        adresse.setNpa(npa);
        adresse.setNoDeRue(selectedRequerant.getAdresse().getNoDeRue());
        adresse.setRue(selectedRequerant.getAdresse().getRue());
        adresse = remoteAdresseDao.save(adresse);
        selectedRequerant.getAutresAdresse().add(adresse);
        Affaire affaire = (Affaire) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("affaire");
       LOG.debug("SAVE OTHER ADRESSE MAIN : " + affaire.getRequerants().iterator().next().getAdresse().getRue());
        selectedRequerant.setAdresse(affaire.getRequerants().iterator().next().getAdresse());
        try {
    	remoteRequerantDao.update(selectedRequerant);
        }catch (Exception ex) {
                 LOG.debug("Exception while updating AuteurPlans " + ex);
        }
        List<AdresseBean> beans =   this.rowSelectContollerRequerantAdresses.getAdresseInventory();
    beans.add(new AdresseBean(adresse));
    this.rowSelectContollerRequerantAdresses.setAdresseInventory(beans);
    this.selectedRequerant.setAdresse(affaire.getRequerants().iterator().next().getAdresse());
    		}
    	}

    Le problème est lorsque je tente d'accéder a mon objet placer en session
    Affaire affaire = (Affaire) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("affaire");

    Celui ci contient les valeurs non pas de l'adresse principale qui a servi a sauvegardé l affaire.

    Mais contient les valeurs de la secondaire.

    Je ne vois pas comment cette variable de session puisse changer dans que je ne le fasse explicitement

    Une piste ?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    en gros ca donne cet écran et Rue devrait avoir la valeur req1 à la place de req2 quand je click sur ajouter une autre adresse les champs de saisie devrait reprendre la valeur initiale

    J aimerais bien devoir éviter d'ouvrir une nouvelle pop up pour saisire les adresses complémentaires....

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    problème contourner avec l utilisation de pop up

    mais j aimerais bien connaitre la raison du pourquoi du comment

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

Discussions similaires

  1. variables de sessions qui ne restent pas
    Par seb67110 dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2007, 11h54
  2. Détruire variable session (pas session entière)
    Par webrider dans le forum Langage
    Réponses: 8
    Dernier message: 30/03/2007, 20h53
  3. Variable de session pas trouvée
    Par Alexandrebox dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2007, 16h56
  4. variables de session qui ne passent pas
    Par cels dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 28/11/2006, 10h46
  5. Réponses: 2
    Dernier message: 20/09/2006, 08h58

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