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

Servlets/JSP Java Discussion :

Remplissage dynamique d'une SelectOneListbox ADF


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut Remplissage dynamique d'une SelectOneListbox ADF
    Bonjour à tous,

    Voila je bute depuis un moment sur le remplissage dynamique de ma liste.
    Tous mes composants sont créée dans mon programme (et non sur une page jsp) avec la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FacesContext.getCurrentInstance().getApplication().createComponent()
    Donc pour la création de ma liste j'ai le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    filesOneListBox = FacesContext.getCurrentInstance().getApplication().createComponent( RichSelectOneListbox.COMPONENT_TYPE );
    filesOneListBox.setValueExpression( "value", (ValueExpression)getfiles( buildContext, attrProxy ) );
    avec la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    protected static Object getfiles( JSFBuildContext buildContext, AttrBindingBuilderProxy proxy ) throws ExplException
    {
    	String ex = ( new StringBuffer( "${bindings." ) ).append( proxy.getCtrlBindingName() ).append( "." ).append( MediaFieldBinding.LINKED_FILES_LIST ).append( "}" ).toString();
     
    	return parseExpression( buildContext, ex );
    }
    Où MediaFieldBinding est la classe bindée à mes composants

    J'ai donc une méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public List getBlobs() throws Exception
    {
    	if( refreshListNeeded )
    		refreshLinkFilesList();
     
    	return blobsList;
    }
    Qui va me créer et me retourner la liste de SelectItem.

    Cette liste est rempli de la façon suivante d'après le résultat d'un requête SQL (je passe les détails)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    blobsList.add( new SelectItem( blobDesc, blobDesc) );
    Jusque là tout va bien ma liste est correctement remplie, le problème viens lors de l’exécution avec le message suivant.
    oracle.adfinternal.view.faces.renderkit.rich.SimpleSelectOneRenderer _getSelectedIndex
    ATTENTION: Could not find selected item matching value "[javax.faces.model.SelectItem@33f5bf7c, javax.faces.model.SelectItem@4aee808a]" in RichSelectOneListbox[UIXEditableFacesBeanImpl, id=j_id209]
    J'avoue ne pas bien comprendre l'erreur.

    J'ai essayé avec des Map, des listes, en lui passant toute sorte de paramètre, rien n'y fait il ne me remplie pas la liste.

    Donc si quelqu'un a une idée je suis preneur

    Cdt.

  2. #2
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Bon pour ceux ce ça intéresse j'ai trouvé la solution.
    En fait il faut passer par un composant intermédiaire qui va lui être ajouté à la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    filesOneListBox = FacesContext.getCurrentInstance().getApplication().createComponent( RichSelectOneListbox.COMPONENT_TYPE );
     
    UISelectItems selectItems = (UISelectItems)FacesUtils.createComponent( UISelectItems.COMPONENT_TYPE );
    selectItems.setValueExpression("value", (ValueExpression)getFiles( buildContext, attrProxy ) );
    filesOneListBox.getChildren().add( selectItems );

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

Discussions similaires

  1. [AC-2007] remplissage dynamique d'une liste déroulante
    Par bernards111 dans le forum IHM
    Réponses: 8
    Dernier message: 01/12/2010, 18h28
  2. [XL-2007] remplissage Combo avec une colonne dynamique
    Par chikitin dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/07/2010, 15h55
  3. Réponses: 0
    Dernier message: 24/12/2009, 16h21
  4. Réponses: 0
    Dernier message: 24/12/2009, 14h47
  5. Remplissage dynamique d'une liste
    Par santati dans le forum Struts 2
    Réponses: 2
    Dernier message: 15/04/2008, 15h16

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