Bonjour je vous expose mon problème. Je souhaite utiliser le composant picklist de richfaces pour faire de la validation de données.
Dans la liste de gauche j'ai la List<SelectItem>snRejetes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <rich:pickList showButtonsLabel="false" value="#{bean.pickList}"> <f:selectItems value="#{bean.snsRejetes}" /> </rich:pickList> <h:commandButton value="Enregister" action="#{bean.enregisterSns}" image="/images/step-Forward.png"/>
Dans la liste de droite j'ai la List<String>pickList
Je veux que l'utilisateur choisisse de passer des snsRejetes dans la liste des autorisés (pickList)
Ces deux listes sont initialisées dans le bean dans une action, je pense ne pas avoir tout compris dans le fonctionnement du composant. Tel que je le comprend, j'initialise la liste de gauche avec seulement les éléments rejetés et dans la liste de droite avec seulement les éléments validés. Dans ce cas la liste des éléments rejetés (gauche) est bien remplie mais pas celle de droite qui devrait contenir aussi des éléments non.
initialisation Bean cas 1
En fouillant sur ce forum j'ai lu que la liste de droite (ma pickList) devait contenir tous les identifiants des éléments des 2 listes, si j’initialise pickList avec tous les identifiants et que je laisse snRejetes avec les éléments rejetés. Je n'ai plus rien dans la liste de gauche et seulement les éléments rejetés dans la liste de droite aie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for(final Element sn : items){ snsAImporter.add(new SelectItem(sn.getSn(), sn.getSn())); pickList.add(sn.getSn()); elements.remove(sn.getSn()); } // pickList.addAll(elements); snsRejetes.addAll(constructSelectItemList(elements));
Dans le Cas 2 je copie juste en plus les éléments rejetés
En plus de cela je trouve la doc de richfaces pas très explicite et je suis poli. Quand ils écrivent que pour utiliser une pickist il faut 2 listes sans prendre la peine de dire que la première doit être une liste de <String> (la value) et l'autre des SelectItem c'est limite du f***age de g**le. J'ai passé plusieurs heures à comprendre le pb.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for(final Element sn : items){ snsAImporter.add(new SelectItem(sn.getSn(), sn.getSn())); pickList.add(sn.getSn()); elements.remove(sn.getSn()); } pickList.addAll(elements); snsRejetes.addAll(constructSelectItemList(elements));.
En plus de cela j'ai l'erreur
Quand j'exécute l'action pour récupérer le contenu de pickList, en fait l'action (enregisterSns) n'est même pas appelé, je pense que le type d'élement ne doit pas être correct , mais je nage dans la semouleBean.pickList}' java.lang.IllegalArgumentException: argument type mismatch
Pourtant cela me parraissait clair dans ce sujet
http://www.developpez.net/forums/d79...ist-richfaces/
Partager