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 :

<rich:comboBox> n'affiche pas le label ?


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 53
    Points
    53
    Par défaut <rich:comboBox> n'affiche pas le label ?
    Bonjour,

    Alors voilà, le composant <rich:comboBox> permettant l'écriture contrairement au composant <h:selectOneListbox>j'ai décidé de l'utiliser. En faite ça fait depuis tout à l'heure que j'essaye toutes les possibilités proposées par exadel mais je n'arrive pas à afficher le label (nom) pour récupérer la valeur (id) .. Je comprend pas pourquoi le composant rich ne fonctionne pas comme le composant jsf classique à ce niveau ni comment je devrais faire ?

    Voici le code de la vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:comboBox selectFirstOnUpdate="false" defaultLabel="Enter some value" value="#{entiteBean.elementSelectionne}">
      <f:selectItems value="#{entiteBean.elements}" />
    </rich:comboBox>
    Voici le code du backingBean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    entiteBean.elements = liste de SelectItem(valeur,"label");
    entiteBean.elementSelectionne = entier
    Quelqu'un pourrait-il m'aider svp ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    Personne pour me donner un coup de pouce ?

    J'ai fait des recherches un peu partout, chaque fois les personnes semblent vouloir récupérer le label (dans mon cas le nom) dans le managedBean et afficher la même chose dans la vue.

    C'est frustrant.

    Le problème que j'ai c'est que si je veux récupérer la valeur (dans mon cas l'id) dans le managedBean grâce au selectItem je dois l'afficher dans la vue, je comprend pas du tout.

    Le seul moyen que j'ai trouvé pour utiliser un SelectItem(valeur,"label") produit comme résultat que dans la vue j'ai le composant <rich:comboBox> qui caste la valeur en String et donc la vue est pleine d'id. Et moi j'ai plus d'idées justement.


  3. #3
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Bonjour,

    ce n'est possible avec la comboBox, tu ne peux pas afficher le label et envoyé la valeur ..

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Si tu regardes la doc de ce composant :

    http://docs.jboss.org/richfaces/late..._comboBox.html

    ils indiquent :

    These JSF components consider only the "value" attribute for this component.
    ce qui signifie que les labels de tes éléments sont purement ignorés. D'où ton problème...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    Merci pour vos réponses

    .. Merci pour le lien aussi ..

    Bon bein, j'écris quand même l'implémentation que je vais utiliser pour ceux qui arriverons sur ce message ..

    Au niveau entityBean (JPA), j'ajoute une référence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public String toString() {
      return nom+prenom+"/"+reference;
    }
    Au niveau ManagedBean (JSF) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elements.add(SelectItem(element.toString));
    Et ..

    Soit j'itererais sur une hashMap {id,toString}

    Soit j'utiliserais l'algo suivant pour récupérer la référence du selectItem :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static String trouveRef(String s) {
    	String[] tableau = s.split("/");		
    	return tableau[1];
    }
    Trois conclusions :
    - Ce sont des brutes chez richFaces (je les remercie au passage pour leurs framework trop cool et tous les exemples)
    - Grâce à vous j'ai évité un mal de crâne pas possible
    - Je met en résolu


  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    Ha oui mais non, la solution de mon post précédent n'est pas du tout correcte.

    Du coup j'obtient l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    11:42:10,208 INFO  [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
    sourceId=form01:j_id_jsp_1478378915_7[severity=(ERROR 2), summary=(form01:j_id_jsp_1478378915_7: 'Nom Prenom /reference' must be a number consisting of one or more digits.), detail=(form01:j_id_jsp_1478378915_7: 'Nom Prenom /reference' must be a number between -2147483648 and 2147483647 Example: 9346)]
    Donc, je récapitule, je peux pas utiliser le label comme valeur puisque la valeur doit être un entier.

    Est-ce que ça veut dire que je dois avoir deux listes ? Une liste de valeurs pour la combo et une liste de String pour la propriété :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    suggestionValues="#{bean.suggestions}"
    Le faite est que les exemples d'exadel (http://livedemo.exadel.com/richfaces...oBox&tab=usage) ne sont pas fonctionnels et qu'ils utilisent des String alors j'y comprend plus rien.

    Est-ce que quelqu'un pourrait me montrer un exemple qui fonctionne avec un composant rich:combobox svp ?

    J'ai parcourus ce forum (il y a des liens cassés sur la question) et le net sans résultats ..

    Voici aussi le bout de code que j'ai dans ma vue, je dois effectuer une action lors de la sélection de l'élément de la liste de la combo, cette action est bloquée à cause du problème de valeur (voir Exception en haut de ce post)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <rich:comboBox selectFirstOnUpdate="false" defaultLabel="Selectionnez .." value="#{bean.selection}">
      <a4j:support event="onselect" actionListener="#{bean.traitement}" />
      <f:selectItems value="#{bean.liste}" />
    </rich:comboBox>

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    Rhalala que je suis bêêête (de temps à autre) .. Voici (le reste de) la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:comboBox suggestionValues="#{monBean.listeDeString}" value="#{monBean.stringDeSelection}" directInputSuggestions="true" defaultLabel="Enter some value">
      <a4j:support event="onselect" ajaxSingle="true" actionListener="#{monBean.methodeDAction}" />
    </rich:comboBox>

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

Discussions similaires

  1. ComboBox multibinding n'affiche pas correctement le selectedItem
    Par alucia dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 22/06/2014, 12h57
  2. Réponses: 11
    Dernier message: 19/01/2011, 11h39
  3. <rich:menuGroup> ne s'affiche pas
    Par bousyass dans le forum JSF
    Réponses: 2
    Dernier message: 17/03/2010, 18h54
  4. Réponses: 2
    Dernier message: 22/10/2007, 12h10
  5. 3 Combobox (Listbox) en cascade la 3éme colonne ne s'affiche pas
    Par minogttao dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/11/2006, 22h44

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