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

JSF Java Discussion :

Problème de composant dupliqué(Client-id : footer is duplicated in the faces tree)


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut Problème de composant dupliqué(Client-id : footer is duplicated in the faces tree)
    Bonjour à tous,

    je suis sur une interface utilisateur en JSF, et j'ai un problème assez récurrent de composant dupliqué.

    En principe, l'utilisateur remplit un formulaire, et quand il veut faire apparaitre un champ optionnel, il y a une validation car la page est rechargée, et à ce moment là si il n'a pas remplit les champs obligatoire ils sont indiqués en rouge.

    Mais dans pas mal de cas(aucune différence trouvée entre les pages jsp ni les beans correspondant) au lieu de celà j'obtiens une page d'erreur car c'est comme si la page rechargée voulait ajouter des composants identiques:

    Client-id : footer is duplicated in the faces tree. Component : footer, path: {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /mainFrame.jsp][Class: org.apache.myfaces.custom.div.Div,Id: _idJsp194][Class: org.apache.myfaces.custom.div.Div,Id: _idJsp195][Class: javax.faces.component.UINamingContainer,Id: footer]}

    Caused by:
    java.lang.IllegalStateException - Client-id : footer is duplicated in the faces tree. Component : footer, path: {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /mainFrame.jsp][Class: org.apache.myfaces.custom.div.Div,Id: _idJsp194][Class: org.apache.myfaces.custom.div.Div,Id: _idJsp195][Class: javax.faces.component.UINamingContainer,Id: footer]}

    A noter que footer est une page jsp importée
    (<t:div styleClass="footer">
    <c:import url="/WEB-INF/jsp/footer.jsp" />
    </t:div>)
    dans la page principale , mainframe.jsp , et qu'en le supprimant de la page c'est un autre composant dupliqué qui fait planter le truc, donc j'imagine que c'est récurrent.

    Dans le debug de firefox il y a bien deux elements footer de ce type:
    <UINamingContainer id="footer" rendered="true" transient="false">


    Si quelqu'un avait une idée pour éviter ce problème ça m'aiderait beaucoup.
    Peut être en supprimant/réinitialisant les éléments à chaque action?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ne jamais faire d'import avec JSF! JSF ne réagit pas très bien avec les taglibs JSP conditionnelles. A la place des imports en JSF, utilise les subview. Dans ton JSP principal tu défini un View, dans ton JSP inclus tu défini une autre view et au lieu de l'import tu fait un subview (ajout d'une vue dans une vue).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <f:subview id="myIncludedPage">
    <jsp:include page="/pages/whatever.jsp"/>
    </f:subview>
    L'utilisation d'include au lieu de import rend l'inclusion à la fois non conditionelle (elle a lieu à la compilation du jsp) et garanti qu'on ne va pas sortir du servlet JSF (contrairement à import qui fait un rendu séparé du JSP inclu avant de copier le résultat dans le JSP maitre)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    Merci beaucoup pour le tuyau !
    J'essaie de changer ça dès que possible pour voir ce que ça donne.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Aussi, myfaces est assez laxiste sur les duplicate Id dans l'arbre, je sais pas dans quelle condition il les détectes, mais je crois me souvenir que la RI de sun est plus stricte, donc tu verra peut etre plus vite ou est ton problème en remplacant temporairement myfaces par sun-ri

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Par défaut
    J'ai essayé en incluant la subview dans ma mainframe.jsp:
    <f:subview id="footer">
    <jsp:include page="/WEB-INF/jsp/footer.jsp"/>
    </f:subview>
    (la jsp footer était déjà une subview)
    même erreur de duplicate id sur la footer apparemment .

  6. #6
    Membre chevronné Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Par défaut
    Peux tu nous montrer ton datatable complet?

Discussions similaires

  1. [ENVOI D'EMAIL] Problème de composant CDONTS
    Par ybenmakh dans le forum ASP
    Réponses: 1
    Dernier message: 10/01/2006, 15h43
  2. Réponses: 7
    Dernier message: 06/01/2006, 09h33
  3. Problème de composant
    Par leycho dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/01/2006, 16h04
  4. [C#]Problème sur composant perso (Bouton Transparent)
    Par SLE dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/10/2005, 00h12
  5. [VB.NET] Problème sur composant comboBox hérité
    Par SergeF dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/06/2004, 14h54

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