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 résultat d'une boolean checkbox


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Par défaut Récupérer résultat d'une boolean checkbox
    Bonjour alors voila mon bout de code :

    fichier xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <h:form>
         <h:dataTable value="#{personneService.personnes}" var="_pers" border="2">
             <f:facet name="header">
                  <h:outputText value="Liste des joueurs" />
             </f:facet>
         <h:column>
              <h:selectBooleanCheckbox value="#{personneService.setpersonnesSelectionnees[_pers]}" />
         </h:column>
    .
    .
    .
    </h:dataTable>
        </h:form>
             <h:commandButton 
                   action="#{personneService.supprimer()}" 
                   value="Supprimer la slection">
             </h:commandButton>
    fichier de service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    private List<Personne> personnes = new ArrayList<Personne>();
    private Map<Personne,Boolean> personnesSelectionnees;
     
    public void supprimer() {
        if (personnesSelectionnees != null){
            System.out.println("personnes selectionnees pas null");
            for (Personne pers : personnesSelectionnees.keySet()){
                  if(personnesSelectionnees.get(pers) == true){
                         Personne toDelete = em.merge(pers);
                         em.remove(toDelete);
                  }
            }
        }
    }
    Ca ne fonctionne pas.
    je suis débutant en JSF, si vous pouviez m'aider...

    Merci beaucoup!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 129
    Par défaut
    Assure toi déjà que ta Map ai un getter et un setter.

    Ensuite, quand tu utilise une EL ( le #{ ... } ), il faut jamais prefixer avec set ou get, c'est géré tout seul.

    Essaye en remplacant par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:selectBooleanCheckbox value="#{personneService.personnesSelectionnees[_pers]}" />

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Par défaut
    Merci beaucoup pour cette réponse rapide.
    Pour le set, oui désolé, j'avais essayé de la mettre ne voyant que ça ne fonctionnait pas autrement.
    J'ai bien les getter et setter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         public Map<Personne, Boolean> getPersonnesSelectionnees() {
    		return personnesSelectionnees;
    	}
     
    	public void setPersonnesSelectionnees(
    			Map<Personne, Boolean> personnesSelectionnees) {
    		this.personnesSelectionnees = personnesSelectionnees;
    	}
    je n'ai pas d'erreur lorsque j'ouvre la page mais quand je coche une ligne et que j'appuie sur supprimer, rien ne ce fait!
    Je n'ai d'ailleur pas le System.out.println que j'ai mis dans la méthode supprimer !

  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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    action="#{personneService.supprimer}"
    Il ne faut pas mettre les () à la fin.


    Sinon je te conseille de lire quelques posts de ce forum concerne le design... Parce que lier directement la couche service avec les pages JSF c'est pas forcément la meilleure chose à faire
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre chevronné Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Par défaut
    Ton bean doit être en scope request, soit tu fais en sorte de persister les données de ton arrayliste de personnes avec un savestate par exemple, soit tu passes ton managed bean en mode session.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Par défaut
    Re bonsoir!

    Merci pour vos réponses.
    Alors j'ai enlever les parenthèses sur l'appel a la méthode supprimer.
    J'ai aussi modifier le type du Scope et ai mis SESSION (il était à PAGE avant).
    Je ne sais pas si c'est ce que tu voulais dire heid ?

    Je pense que le problème viens plutôt de l'enregistrement de la Personne dans la Map personnesSelectionnees car dans le supprimer je fait un system.out.printlln si cette liste n'est pas nulle, ors il ne me l'affiche jamais! Donc pour moi, soit il n'y a ajmais d'enregistrement dans la Map personnesSelectionnees soit alors on ne rentre jamais dans la méthode supprimer :s

  7. #7
    Membre expérimenté
    Inscrit en
    Mai 2004
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 335
    Par défaut
    primo y'a pas de scope page dans JSF.
    <h:dataTable value="#{personneService.personnes}" var="_pers" border="2">
    <f:facet name="header">
    <h:outputText value="Liste des joueurs" />
    </f:facet>
    <h:column>
    <h:selectBooleanCheckbox value="#{personneService.setpersonnesSelectionnees[_pers]}" />
    </h:column>
    .
    .
    .
    </h:dataTable

    a sa je comprend rien ??? tu veux faire quoi avec ton check box ???

    personellement je croix que tu t'es lance sur jsf sans avoir lis quelque chose
    car dans les EL on fais pas appelle a des methodes parametere a moin t'as fais une extension a l'EL.

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

Discussions similaires

  1. Récupérer résultat d'une fenêtre DOS
    Par besly dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 07/11/2008, 14h45
  2. Récupérer résultat d'une requête
    Par nerila dans le forum Bases de données
    Réponses: 10
    Dernier message: 02/03/2007, 12h53
  3. Récupérer résultat d'une rotation
    Par Burckel dans le forum OpenGL
    Réponses: 5
    Dernier message: 14/12/2006, 17h08
  4. [VBA-E] Récupérer résultat d'une requête
    Par ragnarök dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2006, 16h21
  5. Réponses: 5
    Dernier message: 30/06/2005, 10h28

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