Bonjour,

J'ai du mal a organiser mon code pour respecter au mieux le modele MCV dans le cas suivant :

J'ai une page JSF qui doit ouvrir un popup sans valider le formulaire. Je ne peut donc pas passer par l'attribut "action" d'un commandButton par exemple.
J'utilise donc l'attribut onclick avec du code javascript "window.open" suivi d'un "return false".

Ce popup affiche une page JSF contenant un formulaire d'envoie de mail et une aide. Dans un premier temps la page affiche l'aide, puis apres click sur un lien "suivant" l'aide est masquée pour afficher le formulaire d'envoie du mail.

Lorsque le mail est envoyé, la page boucle sur elle meme, et affiche les messages d'erreur ou de succes. L'aide et le forumulaire sont masqués.

Codé java, j'ai initialiement une classe (managed bean) dont les property sont liés aux champs de mon formulaire et une methode "sendmail" lié au commandbutton d'envoie du mail.

Je gere l'affichage ou non des differentes sections (aide, formulaire) a l'aide d'une property dédié (displayHelp).

Pour couronner le tout, la JSP (et donc son bean associé) est utilisés pour plusieurs types d'envoi. J'ai donc besoin de transmettre a mon bean et a ma page un parametre "type" destiné a configurer ma page. Faute de pouvoir passer par une methode lié au parametre action pour ouvrir ma popup, je transmet donc ce parametre via l'url dans le javascript cite plus haut


Mes soucis :
1. Si je place mon bean en scope session, je n'arrive pas a recuperer le parametre "type" transmis via l'url a l'aide des managed property
2. si je place mon bean en mode request pour recuperer le parametre url, je pert la persistance des informations d'une page a l'autre (ie validation du formulaire) et donc mes message s'affichent sur la JSP en dessous de l'aide (configuration initiale).

J'ai essayer de decouper ma classe en 2 avec un "controleur" en scope request qui recupere les parametres url et implemente la methode sendmail puis un second bean en scope session qui lui contient en plus des champsdu formulaire, le parametre "displayHelp" qui gere l'affichage ou non de l'aide. Cela marche pas trop mal mais je ne suis pas convaincu du syteme ....


Voila. Je sais que c'est un peu confus mais j'ai pas mieux en magasin
Alors si quelqu'un a une piste pour gerer ca en respectant le modele MVC que je maitrise encore assez mal ca serait sympas