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 :

Extraire le clé primaire à partir d'une ligne d'un datatable


Sujet :

JSF Java

  1. #21
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Salut ,

    la derniére ligne qui manipule l'objet c est la ligne
    Le lien entre le login et c :

    c est de type client qui a comme clé primaire 'login' . La page liste affiche une lidte des clients dans un datatable . Devant chaque client , deux commandbutton , un pour la modification du profil du client , l'autre 'delete' pour supprimer ce client .

    Normalement , pour supprimer le client , on doit connaitre son clé primaire (n'est ce pas ?) et c'est ca donc le lien entre c et login .

    Ce que j'ai remarqué , que le 'login' n'a pas eté récupéré (null) ,
    c'est pourquoi 'c' est de meme null ce qui implique cette erreur au niveau de la ligne


  2. #22
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    c viens d'ou? Tu le récupère comment? (Du code svp)

  3. #23
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Salut ,
    Le code de la methode remove2 est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String remove2()
    {
        FacesContext context = FacesContext.getCurrentInstance();
     
    Map map = context.getExternalContext().getRequestParameterMap();
     login = (String) map.get("loginn");
     
     c=cf.find(login);
     
        cf.remove(c);
     
        return "removed";
    }

    Pour récuperer 'c' j'ai fait la recherche avec le 'login' comme ca :


  4. #24
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    on peut voir dans tes balises JSF comment tu transfère ce paramètre loginn? PS: est-il normal qu'il contiennent deux n?

  5. #25
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Salut,


    Je le récupére comme ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <h:column>
     
          <h:commandButton id="deleteclient"
                               value="Delete"
                               action="#{metier.remove2}">
     
    <f:param name="loginn" value="#{item.login}"/>
               </h:commandButton>
     
        </h:column>

  6. #26
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    tu peux nous montrer le html généré pour un de tes liens? Ou remplace par ça et dit nous si loginn est bien non null.:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:commandButton id="deleteclient"
                               value="Delete (loginn= #{item.login})"
                               action="#{metier.remove2}">
     
    <f:param name="loginn" value="#{item.login}"/>
               </h:commandButton>

  7. #27
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Salut ,


    d'une part ca affiche loginn=h (ou h est le login) , donc item.login non null,

    d'autre part le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(login);
    affiche un login null et l'rreur est le meme .(regarder la piece jointe)
    Images attachées Images attachées  

  8. #28
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Salut ,

    tant que ca marche pour

    et ca marche pas pour le 'login' , normalement ca se bloque au niveau de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     login = (String) map.get("loginn");

    n'est ce pas ?

  9. #29
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    A partir du moment ou ton loginn est bien mis dans la requete (via f:param) je ne m'explique pas pourquoi tu ne le recois pas coté serveur.

  10. #30
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Salut ,

    normalement c'est cette ligne qui marche pas

    y'a t'il donc pas une autre methode pour contourner ca et récupérer autrement le item.login à partir de la pga 'list.jsp' ?

    Merci

  11. #31
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    c'est pas ce code la qui marche pas, comme tu le dit toi meme le login que tu recupere dans login = (String) map.get("loginn"); est null, ou alors j'ai pas compris.

  12. #32
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    oui oui , désolé cé ca la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    login = (String) map.get("loginn");
    Alors pas d'autre facon ?

  13. #33
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    tu ne dois pas recevoir un null à cet endroit la si t'as cliqué sur le bouton indiqué. Qu'est-ce que tu entends par "pas entièrement loggué" au début de ton post?

  14. #34
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Désolé , mais j'ai pas trouvé cette citation

    "pas entièrement loggué"

    c'est ou exactement ??

  15. #35
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    le terme que t'as utilisé est "j'ai pas entré complétement à mon compte"

  16. #36
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    Ah ok ,

    ce que j'ai voulu dire c'est que lorsque je (cad le client x ) entre à son compte et ne clique pas sur le bouton 'logout' pour fermer sa session , le 'c' et le 'login' du client x restent mémorisé (car j'utilise le session scope), de tel facon que lorsque on passe par la suite à la page 'list' , lorsqu'on veut supprimer n'importe quel client , c'est uniquement le client x qui est supprimé vu la ligne :

    Maintenant , si je passe directement à la page liste , ca marche pas .

  17. #37
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    d'après ton code, c dépend de la ligne, et non pas de l'utilisateur. D'après ton message, c serait l'utilisatur courant et ne dépendrait donc pas de la ligne. T'as un problème de logique quelque part là...

    Si tu rajoute ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    login = (String) map.get("loginn");
    System.out.println("le login est "+login);
    Qu'est-ce que ca donne dans la console? null ou "h" ?

  18. #38
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    ca donne null,

    cé ca , ce que je veut c'est que c dépend de la ligne (peut etre j'ai mal expliqué)

  19. #39
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Je viens seulement de me rendre compte. Tu utilise un commandButton et non un commandLink . Le commandButton ne gère pas les paramètres (d'ou la réception du null). Utilise le commandLink et ça devrais passer

  20. #40
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 132
    Par défaut
    mais , dés le début ,j'ai essayé avec commandLink , mais lorsqsue je clique sur le commnadLink , rien ne change , càd que tout est statique cad comme si j'ai fait rien .(il n'y'a pas meme un erreur ) , meme le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("le login est "+login)
    n'affiche rien (meme pas null) ;

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Créer de nouvelles colonnes à partir d'une ligne
    Par julien4 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/10/2007, 12h33
  2. [VB.net 2005] Extraire un binary image à partir d'une base access
    Par WriteLN dans le forum Accès aux données
    Réponses: 1
    Dernier message: 29/01/2007, 09h23
  3. Comment extraire le mois à partir d'une date?
    Par toumoham dans le forum Paradox
    Réponses: 1
    Dernier message: 17/05/2006, 13h37
  4. lancer une mdb a partir d'une ligne de commande
    Par dpie dans le forum Access
    Réponses: 5
    Dernier message: 30/11/2004, 15h01
  5. Effacer le contenu d'un fichier a partir d'une ligne
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 04/04/2004, 04h47

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