Bonjour,
Je m'essaie au framework JSF, et pour comprendre le cycle de vie plus dans le détail, j'ai voulu implémenter mon propre PhaseListener pour analyser chaque étape, et pour comprendre dans quels cas (exactement) on "saute" certaines étapes du cycle de vie (on passe du restore view directement au render response).
Bref, j'ai donc créé ma classe monPhaseListener dans le package CycleDeVie de la manière suivante :
Puis, j'ai ajouté les références à mon phaseListener dans le fichier faces-config.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Et, pour être sûr que mon phaseListener soit bien reconnu par JSF, j'affiche tous les phases listeners du système (pour chercher le mien). J'ai donc ajouté cette méthode à un bean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3<lifecycle> <phase-listener>CycleDeVie.monPhaseListener</phase-listener> </lifecycle>
Et là, surprise, je ne me retrouve non pas avec 2 phases listeners (celui du système et le mien), mais avec 3 phases listeners, dont deux fois le mien ! Voilà ce que me retourne cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
Et, bien entendu, lorsque j'affiche quelque chose dans beforePhase de monPhaseListener, l'information est affichée deux fois pour chaque phase.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4PhaseListeners : CycleDeVie.monPhaseListener CycleDeVie.monPhaseListener com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl
Là, je ne comprends plus trop... Pourquoi mon phaseListener personnalisé est pris en compte à double ?
Merci d'avance.

 

 
		
		 
        

 
			
			
 
   


 PhaseListener à double
 PhaseListener à double
				 Répondre avec citation
  Répondre avec citation
Partager