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 :

Exception car 2 tags JSF avec le même ID (pourtant chacun dans un <c:when> différent)


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut Exception car 2 tags JSF avec le même ID (pourtant chacun dans un <c:when> différent)
    Bonjour à tous,

    J'ai un problème de DuplicateID en JSF à cause du code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <c:choose>
        <c:when test="#{monBean.monAttribut}">
            // jsf ...
        </c:when>
        <c:when test="#{!monBean.monAttribut}">
            // jsf ...
        </c:when>
    </c:choose/>
    Dans un cas je passe dans le premier <c:when> et dans l'autre cas dans le deuxième, en fonction de la valeur de l'attribut "monAttribut".

    Dans chacun de ces <c:when>, j'ai des composants JSF qui ont le même ID. Je ne penserais pas que cela poserais problème étant donné que j'affiche l'un OU l'autre.

    Pourtant j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ATTENTION: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@1248513) threw exception
    java.lang.IllegalStateException: Component ID form1:mess has already been found in the view.  See below for details.
    Cela ne se produit pas au premier affichage de la page mais une fois que l'un des <c:when> a déjà été affiché et qu'une action entraîne l'affichage de l'autre.

    En fait il s'agit d'un composant <h:messages> que j'affiche de manière différente en fonction de l'action que l'utilisateur vient d'effectuer.

    Y a-t-il un moyen de pallier à cette erreur ?

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut Lourd heritage JSP
    Tous les éléments seront dans l'arbre qui constitue la vue et ils ont donc besoins de ID différents même si certains sont rendus au final et d'autre pas.

    Ma solution n'est pas miraculeuse mais pour moi ton code est trop "JSP" et pas assez "JSF". Utilise moins la taglib c qui est surtout de la récup de JSP et utilise plus l'attribut rendered="<boolean>" qui est présent dans la plupart des éléments pour cela.

    Change les IDs s'il s'agit de 2 choses différentes. Si tu veux avoir 2 fois la même chose (par exemple 2 sous formulaires qui se resemblent) utilise <f:subview id="XXX"> avec un XXX différent pour chacun d'entre-eux. Cela va préfixer les id avec "XXX:"

  3. #3
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Oui j'ai en fait trouvé le moyen de gérer ce que je voulais faire tout en mettant des ID différents partout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probélem JSf avec verbatim-Tag
    Par glasgow dans le forum JSF
    Réponses: 3
    Dernier message: 29/01/2009, 23h20
  2. tag if avec jsf et facelets ?
    Par progamer54 dans le forum JSF
    Réponses: 5
    Dernier message: 28/03/2007, 12h22
  3. Interfaces avec le même nom
    Par myuils dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2004, 18h18
  4. Economie de mémoire pour plusieur images avec la même source
    Par neness dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/01/2004, 10h56
  5. ASP + PHP avec le même phpmyadmin comment faire?
    Par King Boulet dans le forum ASP
    Réponses: 8
    Dernier message: 29/10/2003, 16h57

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