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 :

Problème avec SelectOneMenu


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut Problème avec SelectOneMenu
    Bonsoir,
    Je suis entrain de développer une petite page en jsf et je plante dans le selectOneMenu.J'ai deux tables client et compte je veux extraire dans le selectOneMenu en connectant vers la base de données tous les noms des client existant portant que ça marche pas et j'obtiens l'erreur suivante:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Argument Error: An option for component j_id9 was not an instance of javax.faces.model.SelectItem.  Type found: java.util.ArrayList.
    et voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:selectOneMenu value="#{compteCtr.compte.client}" >
                <f:selectItems value="#{compteCtr.list}" />
           </h:selectOneMenu>
    et la classe est
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    package com.controller;
     
    import java.util.ArrayList;
    import java.util.List;
    import javax.annotation.PostConstruct;
    import com.business.ClientIBusiness;
    import com.model.Client;
    import com.model.Compte;
     
    public class CompteCtr {
     
     
     
    	Compte compte=new Compte();
    	List<Client>list=new ArrayList<Client>();
    	ClientIBusiness ctBuss;
    	private String cin;
     
     
    	@PostConstruct
    	public void init() {
    		list=ctBuss.consulterClient();
     
    	}
     
     
    	public Compte getCompte() {
    		return compte;
    	}
     
    	public List<Client> getList() {
    		return list;
    	}
     
    	public void setList(List<Client> list) {
    		this.list = list;
    	}
     
    	public void setCompte(Compte compte) {
    		this.compte = compte;
    	}
     
    	public ClientIBusiness getCtBuss() {
    		return ctBuss;
    	}
     
    	public void setCtBuss(ClientIBusiness ctBuss) {
    		this.ctBuss = ctBuss;
    	}
     
     
    	public String getCin() {
    		return cin;
    	}
     
    	public void setCin(String cin) {
    		this.cin = cin;
    	}
     
    }
    J'aimerais savoir s'il vous plait pourquoi ça ne marche pas et comment résoudre ce problème

    Merci

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Il te faut un converter ...

    regarde ceci :
    http://www.developpez.net/forums/d11...ique-securise/



    Tu aurais pu faire une "petite" recherche, car il ne se passe pas 15 jours sans que la question ne revienne ...

    http://www.developpez.net/forums/d12...-liaison-bean/

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Par défaut
    Bonjour,

    là je pense que le message d'erreur est plutôt clair :
    option for component j_id9 (très probablement l'id généré de ton selectone) was not an instance of javax.faces.model.SelectItem. Type found: java.util.ArrayList.

    Ton code confirme que ton #{compteCtr.list} est un ArrayList<Client> et non un ArrayList<javax.faces.model.SelectItem>. Et c'est bien à ça que s'attend le selectOne. De la même façon, la valeur ("value") sera celle qui te permettra d'identifier ton élément. On met généralement dans un SelectItem qqchose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private List<SelectItem> maListeDeSelectItems = ArrayList<SelectItem>();
    for(Client client : maListeDeClients){
        maListeDeSelectItems .add(new SelectItem(client.getId(),client.getName()+' '+client.getLastName()));
    }
    Et pour mettre à jour le client sélectionné, il suffit de jouer avec le setter de la valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:selectOneMenu value="#{compteCtr.currentClient}" >...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public setCurrentClient(int id) {selectedClient = getClientsDao().getClientById(id);}
    Tu trouveras beaucoup d'exemples de SelectOne dans ce forum.


    Edit :
    Citation Envoyé par fxrobin Voir le message
    Tu aurais pu faire une "petite" recherche, car il ne se passe pas 15 jours sans que la question ne revienne ...
    Je n'avais pas vu ta réponse avant de poster robin... et plutôt d'accord avec du coup

Discussions similaires

  1. Problème avec selectOneMenu
    Par maximus2010 dans le forum JSF
    Réponses: 4
    Dernier message: 24/01/2013, 13h59
  2. Problèmes avec selectOneMenu
    Par azassma dans le forum JSF
    Réponses: 4
    Dernier message: 14/07/2012, 23h02
  3. Problème avec selectOneMenu et valueChangeListener
    Par sylviefrfr dans le forum JSF
    Réponses: 0
    Dernier message: 10/06/2010, 12h56
  4. problème avec selectOneMenu
    Par yazen dans le forum JSF
    Réponses: 4
    Dernier message: 27/08/2008, 16h04
  5. problème avec selectOneMenu
    Par anisj1m dans le forum JSF
    Réponses: 9
    Dernier message: 12/06/2008, 18h59

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