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 :

Converter et selectOneMenu


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut Converter et selectOneMenu
    Bonjour,

    J'ai un petit soucis de converter avec un composant selectOneMenu, je ne comprends pas, car je pense que tout est correct (evidement ca ne l'est pas si je choppe une erreur) mais apparement une erreur m'échappe.

    Le code de mon selectOneMenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h:selectOneMenu id="statusForm" converter="StatusConverter"	value="#{taskBean.task.status[key]}"
    <f:selectItems value="#{selectList.statusTask2}" /></h:selectOneMenu>
    {taskBean.task.status[key]} correspond à une map <Quarter, TaskStatus>, donc il est nécessaire de renvoyer un type "TaskStatus" (key reprensente "Quarter").

    Voici le converter:

    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
      /**
         * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
         */
        public String getAsString(FacesContext facesContext, UIComponent uIComponent, Object obj) {
            if (obj == null) {
                return null;
            }
           if (obj.getClass().equals(TaskStatus.class)) {
                TaskStatus status = (TaskStatus) obj;
                return String.valueOf(status.getId());
            }
            return null;
        }
     
        /**
         * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
         */
        public Object getAsObject(FacesContext facesContext, UIComponent uIComponent, String str) {
            if (str == null) {
                return null;
            }
            return ServiceUtil.getTaskStatusService().getTaskStatus(Long.valueOf(str));
        }
    ServiceUtil.getTaskStatusService().getTaskStatus(Long.valueOf(str)) va chercher dans ma db l'enregistrement correspondant au numéro envoyé.

    Voici le code qui rempli mes items:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        /**
         * Return the task status list.
         * 
         * @return statusTask
         */
        public List<SelectItem> getStatusTask2() {
            List<TaskStatus> taskStatus = ServiceUtil.getTaskStatusService().findListTaskStatus();
            List<SelectItem> statusItems = new ArrayList<SelectItem>();
            for (TaskStatus tStatus : taskStatus) {
                String tmp = tStatus.getStatusFr();
                statusItems.add(new SelectItem(tStatus, tmp));
            }
            return statusItems;
        }
    Je ne vois pas trop ou ca coince, si quelqu'un a une petite idée ce serait vrmnt génial!

    Mercii d'avance

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    quelle est l'exception?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut
    Je reçois le message :' "statusForm": La donnée n'est pas une option valide.' sur mon formulaire!!

    Donc apparement c'est une erreur de validation

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Par défaut
    J'ai trouvé la solution: il faut redéfinir la méthode equals(Object) dans les classes utilisées

    Merci

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

Discussions similaires

  1. selectOneMenu : converter appelé d'abord
    Par ktaria dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 23/03/2013, 13h16
  2. h:selectOneMenu et converter
    Par tilzi29 dans le forum JSF
    Réponses: 5
    Dernier message: 29/11/2010, 22h13
  3. SelectOneMenu Converter: Valeur is not valid
    Par Lourpiop dans le forum JSF
    Réponses: 4
    Dernier message: 27/05/2010, 17h39
  4. problemes selectonemenu et converter
    Par Tauros_king dans le forum JSF
    Réponses: 1
    Dernier message: 08/03/2007, 20h23
  5. JSF selectOneMenu converter Integer et String
    Par LaseLiep dans le forum JSF
    Réponses: 2
    Dernier message: 12/01/2007, 10h20

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