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 :

[selectONeMenu] Erreur de convertisseur


Sujet :

JSF Java

  1. #21
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    J'ai fait un test chez moi sur une page qui traite une combo et j'ai également un problème de validation quand je mets l'ID de l'enregistrement

    Quelle merde ce truc ! Heureusement, j'ai également un code en clé unique mais bon, je vais me faire un petit jeu de test parce que cette page est déjà complexe, des fois que ce serait un effet de bord... je te tiens au courant
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #22
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    D'accord, c'est déjà pas évident en étant débutant mais si en plus y'a des combines comme ça
    Merci beaucoup pour ton aide

  3. #23
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Ben voilà... le truc est assez dément en fait...
    Voici ma classe de test
    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
    34
    package test;
     
    public class DevisStatut
    {
        private Integer uid;
        private String libelle;
        public DevisStatut(int uid, String libelle)
        {
            super();
            this.uid = uid;
            this.libelle = libelle;
        }
        public Integer getUid()
        {
            return uid;
        }
        public void setUid(Integer uid)
        {
            this.uid = uid;
        }
        public String getLibelle()
        {
            return libelle;
        }
        public void setLibelle(String libelle)
        {
            this.libelle = libelle;
        }
        @Override
        public String toString()
        {
            return "DevisStatut [uid=" + uid + ", libelle=" + libelle + "]";
        }
    }

    Si tu utilises une liste créée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <f:selectItem itemValue="1" itemLabel="Libellé 1"/>
    <f:selectItem itemValue="2" itemLabel="Libellé 2"/>
    ça fonctionne

    Si par contre tu utilises une liste issue d'un bean via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:selectItems value="#{testManager.statuts}" var="item" itemValue="#{item.uid}" itemLabel="#{item.libelle}"/>
    ça ne fonctionne plus

    Le plus naze dans l'histoire, c'est que si tu ajoutes un getter dans ta classe comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public String getCode()
        {
            return uid.toString();
        }
    et que tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:selectItems value="#{testManager.statuts}" var="item" itemValue="#{item.code}" itemLabel="#{item.libelle}"/>
    ça va fonctionner, mais si tu mets un point d'arrêt dans le converter, il n'arrête pas d'y passer (autant de fois qu'il y a de valeurs dans la liste).

    Il semblerait qu'il y ait un problème dans Mojarra...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #24
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Ok je vois le truc, ouais c'est pas évident ...

    Bon j'ai aussi une string unique (le nom du pays), donc j'ai fait comme toi avec ton "code" par contre je verrai comment faire le jour ou je n'aurai pas cette possibilité.
    Merci beaucoup pour ton aide

  5. #25
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je viens de trouver une autre solution qui n'altère pas ton objet, tu peux faire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:selectItems value="#{testManager.statuts}" var="item" itemValue="#{item.uid.toString()}" itemLabel="#{item.libelle}"/>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #26
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Ha oui, bien
    Merci :-)

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Je reviens sur la dernière solution proposée car je ne trouve pas normal de faire cette "pirouette" pour obtenir ce que tu veux.

    En regardant les différents posts, j'ai remarqué que le converter n'était pas complet! Il manque la surcharge de la méthode getAsString(...).
    Le code que j'ai publié est un code qui fonctionne car c'est ce que j'utilise dans mon projet.

    Pour moi il n'y a pas de bug dans mojarra. Le converter joue bien son rôle.

    Quand il charge ta page, il transforme chaque objet Pays de la liste en id pour renseigner itemValue="" grace à la surcharge de getAsString(...)
    Quand tu sélectionnes une valeur dans ta liste et tu enregistres ou que tu recharges ta page, il déduit de l'id sélectionné l'objet Pays grace à getAsObject(...)

    Il faut alors bien mettre dans la facelet
    <f:selectItems value="#{ajouterIdentiteForm.listPays}" var="pays" itemLabel="#{pays.libelle}" itemValue="#{pays}" />

  8. #28
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Merci pour ta réponse.
    Je vais faire comme ça et voir ce que ça donne et reposte pour dire le résultat

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. selectOneMenu Erreur de validation: Valeur not valid
    Par raiseyourfist59 dans le forum JSF
    Réponses: 1
    Dernier message: 29/02/2016, 11h47
  2. Réponses: 11
    Dernier message: 28/01/2012, 11h48
  3. erreur remplissage d'un selectOneMenu
    Par zerocoolyoussef dans le forum JSF
    Réponses: 10
    Dernier message: 20/02/2009, 16h22
  4. [ICEFACES] selectOneMenu Erreur de Validation
    Par *alexandre* dans le forum JSF
    Réponses: 5
    Dernier message: 19/01/2009, 17h45
  5. erreur remplissage d'un selectOneMenu
    Par mimaaaa dans le forum JSF
    Réponses: 9
    Dernier message: 04/09/2008, 14h43

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