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 :

donnée non récupérée


Sujet :

JSF Java

  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 donnée non récupérée
    Hello,

    Je sèche depuis un petit bout de temps sur un bout de code, lorsque je sélectionne et affiche un élément de ma table tout se passe bien

    lorsque je ferme la fenêtre et sélectionne un autre élément la page affiche les données de l'élément précédant

    voici un bout de ma page jsf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <ice:panelTab label="Localisation">
     <ice:panelGrid columns="4">
       <ice:outputText value="Lieu dit"></ice:outputText>
       <ice:inputText value="#{sessionBean.selectedParcelle.lieuDit}"></ice:inputText>
    ...
    dans mon managed bean, j'édite un élément de cette manière

    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
     
    Affaire toEdit = rowSelectController.getSelectedAffaire().getAffaire();
    selectedParcelle = toEditgetParcelles().iterator().next();
    if (selectedParcelle == null || selectedParcelle.getId() == 0) {
      LOG.debug("CREATION OF A NEW LOCALISATION FOR EDITING");
      selectedParcelle = new Localisation();
      setSelectedParcelle(selectedParcelle);
      mainParcelle = new Localisation(); 
    }else {
      LOG.debug("GETTING EXISTING LOCALISATION FOR EDITING : "  
      +selectedParcelle.getId() + selectedParcelle.getLieuDit());
      appendDetachedLocalisation(selectedParcelle);
      setSelectedParcelle(selectedParcelle);
      mainParcelle = getLocalisationCopy(toEdit);
    }			
    ...
    ce qui est étonnant c'est le log affiche les bonnes données (celles du nouvelle élément)

    c'est juste que ma page jsf elle, ne contient pas ces bonnes données

  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
    j ai beau simpllifé le code ca ne marche pas toujours pas je comprend pas d ou ca peut provenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (toEdit.getParcelles().size() > 0) {
       LOG.debug("PARCELLES SIZE > 0");
       selectedParcelle = toEdit.getParcelles().iterator().next();
       appendDetachedLocalisation(selectedParcelle);
       mainParcelle = getLocalisationCopy(toEdit);				
    }else {
       LOG.debug("PARCELLES SIZE == 0");
       selectedParcelle = new Localisation();
       mainParcelle = new Localisation(); 				
    }

  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
    toujours ce problème ... je n'arrive pas à comprendre quelle peut être la cause

    j'applique la même méthode pour mes autres onglets et je n'ai pas de problèmes de récupération des valeurs de l'élément sélectionner

    depuis ma page jsf j'accède simplement à mes valeurs en faisait un #{bean.selectedParcelle.attribut}

    dans mon getter getSelectedParcelle() je log l'appelle et celui-ci renvoye la bonne valeur

    Je créer même une table qui ont elles les bonnes valeurs alors que cette table est construite par la récupération de mon ***** de selectedParcelle

    Je log également la méthode setSelectedParcelle pour être sur que celle-ci n'est jamais appellé durant le traîtement

    Je log la récupération de l'objet courrant qui contient cette parcelle (elle la contient bien)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Affaire toEdit = rowSelectController.getSelectedAffaire().getAffaire();
    LOG.debug("toEDIT = \n" + ToStringBuilder.reflectionToString(toEdit));

    le seule moment ou j'affecte la valeur de selectedParcelle est dans ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    selectedParcelle = null;
    try {
      selectedParcelle = toEdit.getParcelles().iterator().next();
       if (selectedParcelle == null) {
         selectedParcelle = new Localisation();
         mainParcelle = new Localisation(); 
       }else {
        LOG.debug("SELECTED AFFAIRE : " + toEdit.getId());		  
        LOG.debug("SELECTED LOCALISATION : " + selectedParcelle.getLieuDit() + " " + selectedParcelle.getId());
        appendDetachedLocalisation(selectedParcelle);
        mainParcelle = getLocalisationCopy(toEdit);
       }
    Je suis à cours d'idées, une piste ?

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Essaye de forcer le rafraichissement d'un de tes composants pour qu'il relie le les infos du bean (un inputText par exemple).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UIComponent c = (UIComponent)FacesContext.getCurrentInstance().getViewRoot().findComponent("IDDELAFORM:IDDUCOMPOSANT");
     
    c.setValue(null);
    c.setSubmittedValue(null);
    Les bonnes info sont-ils affichées dans ce composant ?

  5. #5
    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
    je test ca demain, merci

  6. #6
    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
    Le problème est que je ne peux pas setter de valeur car il n'y a pas de setter

    mon composant est de type ce:inputText je cherche donc un moynen de le récupérer mais le cast d'un UIComponent en InputTextTag n'est pas possible

  7. #7
    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
    Je tente de récupérer en UIInput de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void setLocalisationFieldsValue() {
    		UIInput inputLieuDit = (UIInput) FacesContext.getCurrentInstance().getViewRoot().findComponent("popEdition:_idJsp141:0:lieuDit");
    		if (inputLieuDit != null) {
    			LOG.debug("INPUT LIEU DIT NOT NULL");
    			inputLieuDit.setValue(selectedParcelle.getLieuDit());
    			inputLieuDit.setSubmittedValue(null);
    		}		
    	}
    cependant il ne trouve pas le composant ... alors que le code générer est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ><input class="iceInpTxt" id="popEdition:_idJsp141:0:lieuDit" name="popEdition:_idJsp141:0:lieuDit" onblur="setFocus('');setFocus('');" onfocus="setFocus(this.id);" onkeypress="iceSubmit(form,this,event);" onmousedown=";this.focus();" value="Le Lieu dit" type="text">
    une idée ?

  8. #8
    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
    finalement résolu avec un VRAI refresh / recréation de la vue

    http://wiki.apache.org/myfaces/ClearInputComponents

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Salut,

    Avec un refresh de toute la table ça marche dans ton cas, mais la plupart du temps c'est pas très pratique ...

    Pour ton cas, il fallait mettre un id à ton ice:inputText, peut être tu l'avais fait et que ça na pas marcher ! Et ta l'objet Icefaces HtmlInputText qui représente l'inputText, ceci dit même avec le UIInput ça devrait marcher.

    L'essentiel c'est que tu as trouvé une solution qui marche

  10. #10
    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
    Citation Envoyé par Esil2008 Voir le message
    Salut,

    Avec un refresh de toute la table ça marche dans ton cas, mais la plupart du temps c'est pas très pratique ...

    Pour ton cas, il fallait mettre un id à ton ice:inputText, peut être tu l'avais fait et que ça na pas marcher ! Et ta l'objet Icefaces HtmlInputText qui représente l'inputText, ceci dit même avec le UIInput ça devrait marcher.

    L'essentiel c'est que tu as trouvé une solution qui marche
    ce n'est même pas un refresh d'une table ... c'est de la vue entière car même en settant à null les valeurs utilisés par jsf il y avait toujours des zombies ... car le problème ne venait pas simplement d'une table comme tu le soulignes

    ps pour le set des id ca ne marchait pas aucun composant n était trouvé certainement encore un bug de icefaces ... mais la solution n était pas très propre non plus

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

Discussions similaires

  1. Données de formulaire non récupérées
    Par Christophe P. dans le forum Struts 1
    Réponses: 5
    Dernier message: 02/09/2006, 11h33
  2. Format de base de données non reconnu
    Par Consultant dans le forum Access
    Réponses: 4
    Dernier message: 05/10/2005, 11h32
  3. Comment sélectionner les données non dupliquées
    Par Dnx dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/10/2005, 11h43
  4. Réponses: 4
    Dernier message: 01/07/2005, 16h20
  5. [CR] Impression de données non issues d'une base de données
    Par jeroe dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 04/04/2005, 09h09

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