IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

initialisation par fichier faces-config impossible


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut initialisation par fichier faces-config impossible
    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.
    @+

  2. #2
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Personne n'aurait une idée?? J'y ai passé la matinée, avec un formateur, sans résultat.
    On ne voit pas du tout d'où cela viens.

    Encore merci

  3. #3
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Bon et bien j'ai passé le week-end la dessus, sans trouver de résultat.
    J'ai parcouru le web à ce sujet, mais rien de concluant..

    Y aurait-il une bonne âme, qui pourrait m'aiguiller?
    Si il faut transmettre d'autres bouts de code il n'y aura aucun problème.

    Cette nuit je pars en vacances jusqu'à samedi. Mais je sais d'avance que cela va me travailler toute la semaine. J'aurais préféré partir avec ce problème de résolu.

    @+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Petite piste toute bete, a verifier car c'est un comportement que j'ai cru observer.

    Je n'ai jamais reussi a inititaliser des property definis dans le face-config.xml avec un ManagedBean qui a un scope session.

    Le scope session, ne rentre jamais dans mes get et set des property indiquees dans le face-config, et donc mes values valent toujours null.


    Pour pallier ce probleme(Car je devais travailler en session, et mes managedBean devaient s'echanger des infos) je suis passe par les session.

    Pour envoyer des infos:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Attache of the right to the session
    getSession().setAttribute(NomDeMonObjet, Objet1);
    getSession().setAttribute(NomDeMonObjet2, Objet2);
    Pour la reception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            
    Objet1=(Objet1) getSession().getAttribute(NomDeMonObjet);
    Objet2=(Objet2) getSession().getAttribute(NomDeMonObjet2);
    Voila, j'espere que cela t'avancera un peu.

  5. #5
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Merci pour cette piste, je l'essayerai demain (je viens de rentrer de Saint-Malo 12heures de route donc là je suis sur les genoux).
    Mais ce qui est bizarre, c'est que je me suis inspiré du bouquin de JEE5 de Goncalves avec l'exemple de petstore, et cela fonctionne très bien, sur son exemple. Bien que les managed bean soient en scope session.

    J'essayerais demain, encore merci pour cette piste.

  6. #6
    Membre éclairé Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Par défaut
    Merci cheval, ta réponse fonctionne, mais cela ne m'explique pas pourquoi, je n'arrive pas à initialiser mes propriétés par le faces-config.xml.
    J'aurais aimé savoir ce que j'ai raté.
    J'ai beau parcourir le bouquin en long en large et en travers, je ne vois pas ce qui cloche.
    Je compare aussi mon code à celui de goncalves et je ne vois pas ou il y a une différence.
    J'ai l'impression de jouer à chercher les 7 erreurs (bien qu'il ne doit pas y en avoir 7) sans voir le début d'une piste, expliquant pourquoi cela ne fonctionne pas.

    En tout cas merci.

    Si quelqu'un, ayant reussi à initialiser des propriétés de managed-bean par le faces-config.xml, j'apprécierai qu'il m'explique les choses à faire pour que cela fonctionne.

    Merci d'avance.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Citation Envoyé par touftouf57 Voir le message
    Mais ce qui est bizarre, c'est que je me suis inspiré du bouquin de JEE5 de Goncalves avec l'exemple de petstore, et cela fonctionne très bien, sur son exemple. Bien que les managed bean soient en scope session.
    Faut se méfier des livres, personnellement j'ai lu un bouquin sur les EJB3 sous glassfish avec top link, il est écrit noir sur blanc que les références entre entité sont a eager par défaut, or après de nombreux tests il s'avèrent que c'est le contraire(defaut=LAZY).

    Enfin bon, content que tu es pu t'en sortir comme ca, si tu trouves une explication rationnelle sur le non fonctionnement des properties avec le scope session je suis preneur.

    Bonne soirée.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/12/2011, 14h46
  2. Fichier Faces config
    Par boy09 dans le forum JSF
    Réponses: 1
    Dernier message: 09/02/2011, 17h26
  3. Réponses: 0
    Dernier message: 14/10/2009, 22h52
  4. définition fichier faces-config .xml
    Par chris_013 dans le forum JSF
    Réponses: 1
    Dernier message: 04/03/2009, 09h24
  5. [Erreur]impossible de trouver le fichier de config du moteur
    Par julietteste dans le forum Bases de données
    Réponses: 5
    Dernier message: 10/05/2005, 18h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo