salut,
g un soucis avec un managed bean qui est utilisé avec une seule et meme page qui est utilisée soit pour afficher des données par défaut, soit pour affiche des données en fonction du formulaire transmis. Je n'arrive pas à combiner les 2...

Un petit rappel:
Lorque jsf détecte qu'une page jsp a besoin d'un managed bean, alors il l'instancie suivant les parametres fournis dans son faces-config... Ensuite il applique l'injection des propriétés spécifiées (<managed-property>), puis éventuelement, il initialise les propriétés des formulaire et des composants bindés.

On peut se trouver ensuite dans 2 cas:
- Si on ouvre une page la 1ere fois (pas de parametres passés...) alors il instancie le constructeur puis initialise les propriétés puis rend immédiatement le bean à la jsp pour accéder aux champs ou aux composants bindés.

- Si un évenement de l'utilisateur (un lien ou un bouton par ex...) déclenche une action / actionListener, alors le bean est d'abors instancié comme précedement PUIS on appele la méthode correspondante.

je suis confronté au probleme suivant:
la 1ere fois que j'accede à la page, je veux remplir les propriétés à afficher par la vue avec des valeur par défaut

la 2eme fois, suite à une transmission de paramètres par un formulaire, je souhaite remplir les propriétés à afficher de la meme page avec des données qui sont fonction des paramètres transmis

Or si vous avez suivi l'explication + haut, je ne peux récupérer les paramètres transmis qu'une fois le bean instancié... Du coup je ne peux pas détecter si je me trouve dans une situation ou les paramètres par défaut sont suffisants pour initialier les champs a afficher... Vous allez me dire, dans le constructeur il faut initialiser les données avec leur valeur par défaut, et si suite à une action et appelée, elle va surcharger ses valeurs...
Sauf que c'est pas propre du tout, et si je dois remonter 2fois des données qui proviennent d'un bdd, ca peut etre lourd


Donc apres avoir réfléchi, il faudrait trouver une solution pour lancer une méthode juste apres que les propriétés des formulaires soient initialisée par JSF, et juste avant les action()
Cette méthode consulterait les données du formulaire: si aucune, alors elle utiliserai des parametres par défaut, sinon elle utiliserai les donnée du formulaire pour remplir les données de la vue...


Je sais qu'en utilisant jsf-spring je peux créer mon bean et lancer une méthode postConstructor, mais elle intervient avant que jsf n'est le temps de remplir les champs transmis du formulaire, donc ca ne m'interesse pas...

Alors en fouillant un peu, j'ai vu que struts-shale utilise ce concept dans ce qu'il appele les bean ViewControler. Il fait exactement ce que je cherche, sauf que je n'ose pas me lancer dans se framework qui n'est pas encore en release...

Alors je voudrais savoir ce que vous peznsez de shale, et sinon est ce que vous voyez une solution pour lancer une méthode comme g besoin si dessus.