Problème d'injection de Managed Beans
Bonjour à tous,
Je suis un newbie en java/j2ee (je sors fraichement d’une formation AFPA) et je développe (tout seul ;-() actuellement une appli web d’échanges de services entre particuliers ;).
Mon environnement de dev est le suivant : Glassfish 3.1.2 en avec Netbeans7.3 et jsf2 + primefaces 3.5, le tout sur reposant sur une base MySQL avec du JPA.
Ce que je fais (ou essaye de faire…) :
------------------------------------------
Je saisie une annonce grâce à une jsf (saisieAnnonce.xhtml) couplée à un Managed Bean de niveau session (SaisieAnnonceMB.java).
Ma jsf appelle une fonction de validation validationAnnonce() qui se trouve dans un autre Managed Bean tjs de niveau session : ValidationAnnonceMB.java
Dans ce Managed Bean ValidationAnnonceMB.java , j’injecte le Bean de saisie de l’annonce : SaisieAnnonceMB.java (je rajoute bien les getters associés pour le bean injecté) afin d’écrire l’annonce en base.
A la fin de la validation je détache le bean de saisie (SaisieAnnonceMB.java) du contexte de la facelet, pour avoir une nouvelle saisie vierge possible.
Mon Pb est le suivant :
------------------------
Tous se passe bien pour la première annonce saisie, par contre lorsque le même user, dans la même session veut saisir une 2eme annonce, mon bean de validation pointe à priori toujours sur la version du bean de saisie de la 1ere annonce…(même adresse ds le debug)
Ce que j'utilise comme fct pour supprimer le bean de saisie en fin de validation:
Code:
1 2 3 4 5 6 7 8
| //-------------------------------------------------------------------------
// suppression d'un Bean Session
//-------------------------------------------------------------------------
public static void resetManagedBeans(String nomBean) {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
String sessionId = session.getId();
session.removeAttribute(nomBean);
} |
Je pense que je n'ai pas bien assimilé ts ces concept :calim2:s, Merci de vos conseils et expertise,
@+
GLO