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 :

Récupérer valeur d'un selectOneMenu


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut Récupérer valeur d'un selectOneMenu
    Bonjour,

    je suis débutante dans la programmation JSF et j ai un probleme qui m'empêche d'avancer.j ai une liste deroulante dans un formulaire qui recupere la liste des clients de la base de données
    en fait je recupere le client avec son id, son iphost et son port de communication(grace à findAll)
    j ai besoin de recuperer la valeur selectionnée dans la liste sachant qu elle est de type Collection de Client
    mais j ai besoin de recuperer ses valeurs séparemment cad récuperer id, ip et le port

    voici un morceau de mon code :

    <h:selectOneMenu id="clts" value="#{oGGManagedBean.idclient}">
    <f:selectItems value="#{oGGManagedBean.listClient}" var="e" itemLabel="#{e.ipHost}"/>
    </h:selectOneMenu>

    Cela me retourne cette erreur :

    select:clts: 'entities.Client[ idClient=1 ]' must be a number consisting of one or more digits.

  2. #2
    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,

    pour commencer, je ne pense pas que <f:selectItems ...> aie d'attribut "var" ni "itemLabel". A la rigueur, la version <f:selectItem ..> (sans 's') a un attribut itemLabel. Peut-être confonds-tu avec la version de Tomahawk (ici)

    Si tu veux une liste de choix liée à ta collection (je vais supposer que c'est une liste), ça peut se faire de deux façons au moins :

    1 - tu crées une liste secondaire dans laquelle tu recopies les ids de tes clients (qui sera la valeur du choix) et le libellé (qui sera l'ip host si j'ai bien suivi)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private List<Client> listClient; 
    private List<SelectItems> listSelectClient;
     
     
    ...
    init(){
    ...
    listSelectClient = new ArrayList<SelectItem>();
    for(Client client : listClient){
       listSelectClient.add(new SelectItem(client.getId(),client.getIpHost()));
    }
    ...
    }

    2 - tu crèes un getter sur une liste de SelectItem "virtuelle" (tu n'as pas à la créer, et du coup tu travailles directement avec ta liste de clients : ça a l'avantage de ne pas dupliquer les données et donc d'éviter les erreurs de recopie! Par contre, les getters/setters sont parfois appelés plusieurs fois, donc ça peut être un peu plus lourd côté serveur!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public getListSelectClient(){
        List<SelectItem> listSelectClient = new ArrayList<SelectItem>();
        for(Client client : listClient){
           listSelectClient.add(new SelectItem(client.getId(),client.getIpHost()));
        }
        return listSelectClient;
    }
    Dans les deux cas, le code XHTML est le même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:selectOneMenu id="clts" value="#{oGGManagedBean.idclient}">
    <f:selectItems value="#{oGGManagedBean.listSelectClient}" />
    </h:selectOneMenu>
    Si ce n'est pas clair, ou que tu as d'autres question, pense à joindre aussi la partie du bean qui est liée, afin qu'on puisse mieux t'aider. Et n'oublie pas de jeter un oeil ici et ici

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut
    Bonjour,

    merci beacoup pour ton aide. ça marche bien maintenant

Discussions similaires

  1. Récupérer la valeur d'un SelectOneMenu Dynamique
    Par iliass001 dans le forum JSF
    Réponses: 9
    Dernier message: 27/07/2011, 16h43
  2. récupèrer la valeur d'un selectOneMenu
    Par st0rm dans le forum JSF
    Réponses: 7
    Dernier message: 03/02/2010, 04h02
  3. Réponses: 10
    Dernier message: 25/08/2008, 18h49
  4. Réponses: 3
    Dernier message: 25/08/2008, 09h48
  5. Réponses: 4
    Dernier message: 09/08/2007, 13h52

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