bonjour,

Je ne comprend pas pourquoi je n'arrive pas à initialiser la propriété utilisateur de mon managed-bean AnnonceControleur à la valeur utilisateur d'un autre managed-bean compteControleur.

voici les managed bean définis dans faces-config.xml
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
 <!--Managed bean-->
    <managed-bean>
        <managed-bean-name>compte</managed-bean-name>
        <managed-bean-class>com.ptitesannonces.controleur.CompteControleur</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
 
    <managed-bean>
        <managed-bean-name>annonce</managed-bean-name>
        <managed-bean-class>com.ptitesannonces.controleur.AnnonceControleur</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>utilisateur</property-name>
            <value>#{compte.utilisateur}</value>
        </managed-property>
        <managed-property>
            <property-name>motCle</property-name>
            <value>aaa</value>
        </managed-property>
    </managed-bean>
voici la partie de ma page NouvelleAnnonce.jsp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<h:panelGrid columns="2">
                                <h:outputText value="titre"/>
                                <h:inputText id="titre" value="#{annonce.annonce.titreAnnonce}" title="titre"/>
                                <h:outputText value="caracteristique"/>
                                <h:inputText value="#{annonce.annonce.caracteristiqueAnnonce}"/>
                                <h:outputText value="#{annonce.utilisateur}"/>
                                <h:outputText value="#{compte.utilisateur}"/>
                                <h:outputText value="#{annonce.motCle}"/>
                                <h:outputText value="Montant"/>
                                <h:inputText value="#{annonce.annonce.prixDeVente}"/>
                            </h:panelGrid>
mais lorsque je l'execute j'ai bien #{compte.utilisateur} qui contient une valeur alors que #{annonce.utilisateur} est à null.
Et j'ai vérifié avec #{annonce.motCle} me donne lui le texte "aaa", définit dans faces-config.
Donc l'initialisation via faces-config est faites. Mais pourquoi je n'obtient les 2 même valeurs d'utilisateur?
Aurais-je oublié de déclarer quelquechose dans mon controleur "AnnonceControleur"? Ou cela aurait-il quelquechose à voir avec les méthodes equals, hashcode de mes entités?

voici la déclaration des attributs de AnnonceControleur:
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
public class AnnonceControleur extends Controleur {
 
    @EJB
    private AnnoncesLocal annoncesBean;
 
    private final String cname = this.getClass().getName();
    private String motCle;
    private Categorie categorie;
    private Produit produit;
    private Annonce annonce;
    private ReponseAnnonce reponseAnnonce;
    private List<Produit> listeProduits;
    private List<Categorie> listeCategories;
    private List<Annonce> listeAnnonces;
    private List<ReponseAnnonce> listeReponses;
    //La propriété utilisateur est initialisée à l'aide du fichier Faces-config.xml
    private Utilisateur utilisateur;
 
    // ======================================
    // =          Methodes publiques        =
    // ======================================
    @PostConstruct
    public String chercherListeCategories(){
Merci de votre aide.
@+