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 :

[MyFaces] Récupération données selectManyCheckbox


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut [MyFaces] Récupération données selectManyCheckbox
    Bonjour,

    J'ai un soucis avec la récupération des données au sein d'une selectManyCheckbox. Le code est pourtant minimaliste... Je définis la selectManyCheckbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <t:selectManyCheckbox id="listDroits" binding="#{backingAdmin_gestionDroits.listDroits}" value="#{backingAdmin_gestionDroits.selectedDroits}" layout="pageDirection">
    	<t:selectItems value="#{backingAdmin_gestionDroits.droits}" var="d" itemValue="#{d.id}" itemLabel="#{d.nom}"/>
    	<f:converter converterId="javax.faces.Long" />
    </t:selectManyCheckbox>
    Avec pour la récupération des éléments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	public List<Droit> getDroits() {
    		DroitDAO dDAO = new DroitDAO();
    		List<Droit> res = dDAO.getBy("id", "asc");
     
    		return res;
    	}
    J'ai un bouton qui lance une méthode devant récupérer les données cochées de la liste de box et les afficher tout bêtement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public String modif() {
     
    		Object[] sDroits = this.getListDroits().getSelectedValues();
    		System.out.println(sDroits.toString());
     
    		return "#";
    	}
    Mais voila, lorsque je clique sur le bouton, je recois l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.Object;
    	at javax.faces.component.UISelectMany.getSelectedValues(UISelectMany.java:85)
    	at backingAdmin.BackingGestionDroits.modif(BackingGestionDroits.java:54)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
    La ligne posant soucis étant la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object[] sDroits = this.getListDroits().getSelectedValues();
    D'après la doc, "getSelectedValues" renvoie bien un "Object[]", je ne vois donc pas où il essaye de caster une ArrayList en Object[]. Je bloque... Si quelqu'un sait faire cela, je suis preneur.

    Accessoirement, un autre petit soucis : les cases à cocher apparaissent à droite du texte label, je préfèrerais qu'elles apparaissent à gauche pour un alignement vertical plus homogène, j'ai pas réussi à trouver malgré des recherches... Là encore, merci d'avance pour vos conseils.

  2. #2
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut
    Bonsoir,
    j'ai un peu regardé ton problème. je voudrais savoir si le binding que tu fais dans le selectManyCheckbox n'y ai pour rien.

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut
    C'est à dire ? Je veux bien enlever le binding, mais du coup, j'accède comment a ma liste moi ? Si le truc c'est de s'assurer que le binding est bien fait, voila le code qui s'en charge :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	private HtmlSelectManyCheckbox listDroits;
     
    	public HtmlSelectManyCheckbox getListDroits() {
    		return listDroits;
    	}
     
    	public void setListDroits(HtmlSelectManyCheckbox listDroits) {
    		this.listDroits = listDroits;
    	}
    Pour le "value", voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	public List<Long> getSelectedDroits() {
    		Statut s = (Statut)JSFUtil.getOnSession(FacesContext.getCurrentInstance(), "editDroitsStatut");
    		Iterator<Droit> itD = s.getDroit().iterator();
    		List<Long> res = new ArrayList<Long>();
     
    		while(itD.hasNext()) {
    			Droit d = itD.next();
    			res.add(d.getId());
    		}
     
    		return res;
    	}
    Qui en fait récupère un certain nombre de "Droit" parmi ceux déjà listé par la méthode "getDroits()"

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Par défaut Probleme avec selectmanychecbox
    Je veux recupérer les valeurs cochées dans ces cases à cocher, mais il ya une exception du genre "Erreur de validation: Valeur not valid",

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    :<hselectManyCheckbox id="piece" layout="pageDirection" value="#{monBean.selectedItems}" >
             		<f:selectItems value="#{monBean.lesPieces}"/><br>
     
             </h:selectManyCheckbox>

Discussions similaires

  1. HELP récupération données formulaire
    Par liichiii dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2006, 00h29
  2. probleme récupération donnée dans script xsl
    Par jmacdev dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 12/05/2006, 17h37
  3. Récupération données formulaire en php5
    Par jcaspar dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2006, 20h45
  4. Récupération données en registre
    Par cgoln dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/12/2005, 11h05
  5. Réponses: 3
    Dernier message: 13/09/2005, 12h21

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