Bonjour,
J'ai fait plusieurs fois le tour de la recherche, de la FAQ et de google, je n'arrive pas a trouver mon probleme... Je m'explique :
Lors du chargement de ma page JSF, certaines méthodes (pas toutes sinon ca serait pas drôle) sont executées au chargement de ma page.
Voici le code de ma JSF :
du coté du managed bean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <f:view> <h:form> <h1><h:outputText value="Liste des musiques du genre"/></h1> <input type="file" name="upload" onlosefocus="#{musiqueMBean.uploaderMusique(this.files)}" /> <h:commandButton value="retour" action="#{musiqueMBean.updateListeMusique()}"/> <p:dataTable value="#{musiqueMBean.musiques}" var="item"> <p:column headerText="Select"> <f:facet name="header"> <h:outputText value="Select"/> </f:facet> <p:selectBooleanCheckbox value="#{musiqueMBean.addSelectedMusique(item)}" />
Comportement :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 /** * * remet la liste des musiques par defaut */ public void updateListeMusique(){ System.out.println("updateListeMusique : debut"); musique = gestionnaireMusique.getAllMusiques(); } public void addSelectedMusique(Musique m){ System.out.println("MusiqueMBean.addselectedMusique() : debut "); // Recherche si la musique est deja presente dans la liste // Si oui, alors on la vire ==> on viens de decocher la case // Sinon on l'insere if (musiqueSelected.contains(m)){ // On la vire musiqueSelected.remove(m); } else{ // on l'insere musiqueSelected.add(m); } } public void uploaderMusique(File f){ System.out.println("uploaderMusique : debut"); System.out.println("uploaderMusique : etat fichier = "); lectureEnCours= null; /*if (event.getFile() != null){ File f = (File)event.getFile(); gestionnaireMusique.recupererMusique(f,null); } else{ System.out.println("pas de fichier a upload"); }*/ }
les methodes uploaderMusique(File f) et addSelectedMusique sont executées lors chargement (ou rechargement) de ma page (DataTable?) alors que la methode updateListeMusique() est bien executée uniquement lorsqu'on en as besoin par le clic du bouton.
J'utilise JSF 2.0 et primefaces 3.0
Est-ce que quelqu'un a déjà eu ce probleme?
Partager