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 :

Erruer "Duplicate Id for a component"


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut Erruer "Duplicate Id for a component"
    Bonjour,
    J'utilise JSF, Facelet et Richfaces. Je me retrouve aujourd'hui avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    duplicate Id for a component j_id65:j_id69:j_id79
    Je n'avais pas mis d'id pour les deux composants en question, donc il est sensé en être généré un unique... il y a-t-il un bug?

    Mon duplicate id n'apparait pas non plus à la première ouverture du site, mais si je reload ma page par exemple

    Quelqu'un a-t-il déjà eu ce pb et l'a-t-il résolu?

    Merci d'avance!

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    tu as forcément un id qui a été setté à la main pour deux composants différents (avec la même valeur) ca peut être des selectItems par example$

    montre ton code jsf

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    tu utilise un binding dans ta page?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    oui il y a plusieurs binding dans ma page

    l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    duplicate Id for a component j_id65:j_id69:j_id73
    c'est une page "menu", il y a deux rich:modalPanel puis le menu proprement dit, voici le code du 1er modalPanel qui a le pb des id

    le xhtml
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <f:subview>
    ...
            <rich:modalPanel id="confirmMPAnnualInterview" autosized="true" mode="ajax">
                <f:facet name="header">
                    <h:outputText value="#{messages.generalMenu_newAnnualInterview}"/>
                </f:facet>
                <f:facet name="controls">
                    <h:panelGroup>
                        <h:graphicImage alt="X" url="/images/close.png" style="cursor:pointer"  id="controlCloseconfirmMPAnnualInterview"/>
                        <rich:componentControl for="confirmMPAnnualInterview" attachTo="controlCloseconfirmMPAnnualInterview" operation="hide" event="onclick"/>
                    </h:panelGroup>
                </f:facet>
                <h:panelGroup id="confirmMPAnnualInterviewContent">
                    <h:form>
                        <h:panelGrid columns="2"> 
                            <h:outputText value="Salarié"/>
                            <h:selectOneListbox binding="#{NewAnnualInterviewBean.selectEmployeeComponent}" converter="StringConverter" immediate="true" required="false"
                                                size="1" valueChangeListener="#{NewAnnualInterviewBean.changeSelectEmployee}">
                                <f:selectItem itemValue="" itemLabel="Please select..." enabled="false"/>
                                <f:selectItems value="#{SessionBean.employeesSelects}"/>
                                <a4j:support event="onchange" immediate="true"  ajaxSingle="true" reRender="confirmMPAnnualInterviewContent"/>
                            </h:selectOneListbox>
                            <h:outputText value="Année"/>
                                <h:selectOneListbox binding="#{NewAnnualInterviewBean.selectYearComponent}" converter="StringConverter" immediate="true" required="false"
                                                size="1" valueChangeListener="#{NewAnnualInterviewBean.changeSelectYear}">
                                <f:selectItems value="#{NewAnnualInterviewBean.yearSelects}"/>
                                <a4j:support event="onchange" immediate="true"  ajaxSingle="true" reRender="confirmMPAnnualInterviewContent"/>
                            </h:selectOneListbox>
                            <!--<h:outputText value="Evénement associé"/>
                            <h:selectOneListbox binding="#{NewAnnualInterviewBean.selectAnnualAssocEventComponent}" converter="StringConverter" immediate="true" required="false"
                                                size="1" valueChangeListener="#{NewAnnualInterviewBean.changeSelectAnnualAssocEvent}" rendered="#{NewAnnualInterviewBean.annualInterviewSelectAssocEventsRendered}">
                                <f:selectItems value="#{NewAnnualInterviewBean.annualsAssocEventSelects}"/>
                                <a4j:support event="onchange" immediate="true"  ajaxSingle="true" reRender="confirmMPAnnualInterviewContent"/>
                            </h:selectOneListbox>-->
                            <rich:spacer height="20px" /><rich:spacer height="20px" />
                            <a4j:commandButton id="annualBtnCancel" value="Cancel" onclick="#{rich:component('confirmMPAnnualInterview')}.hide();return false"/>
                            <a4j:commandButton id="annualBtnOK" value="OK"  action="#{NewAnnualInterviewBean.createNewAnnualInterview}" onclick="#{rich:component('confirmMPAnnualInterview')}.hide();"
                                               reRender="centrepanel" rendered="#{NewAnnualInterviewBean.annualInterviewBtnOKRendered}">
                                <a4j:actionparam value="/newAnnualInterview.xhtml" assignTo="#{GeneralMenuBean.url}"/>
                            </a4j:commandButton>
                        </h:panelGrid>
                    </h:form>
                </h:panelGroup>
            </rich:modalPanel>
    ...
    ce qui me donne du
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
        <HtmlPanelGroup id="confirmMPAnnualInterviewContent" rendered="true" transient="false">
     
            <HtmlForm enctype="application/x-www-form-urlencoded" id="j_id69" prependId="true" rendered="true" submitted="false" transient="false">
     
                <HtmlPanelGrid border="-2147483648" columns="2" id="j_id70" rendered="true" transient="false">
     
                    <HtmlOutputText escape="true" id="j_id71" rendered="true" transient="false" value="Salarié"/>
     
                    <HtmlSelectOneListbox converter="acsformation.war.converters.StringConverter@1364c09" disabled="false" id="j_id72" immediate="true" localValueSet="false" onchange="A4J.AJAX.Submit('_viewRoot','j_id65:j_id69',event,{'control':this,'similarityGroupingId':'j_id65:j_id69:j_id75','parameters':{'j_id65:j_id69:j_id75':'j_id65:j_id69:j_id75','ajaxSingle':'j_id65:j_id69:j_id72'} ,'actionUrl':'/ACSFormationEE-war/home.faces'} )" readonly="false" rendered="true" required="false" size="1" transient="false" valid="true" binding="#{NewAnnualInterviewBean.selectEmployeeComponent}">
                        org.ajax4jsf.ajax.SUPPORTonchange
     
                        <HtmlAjaxSupport ajaxSingle="true" bypassUpdates="false" disableDefault="false" disabled="false" event="onchange" id="j_id75" ignoreDupResponses="false" immediate="true" limitToList="false" rendered="true" requestDelay="-2147483648" timeout="-2147483648" transient="false"/>
     
                        <UISelectItem id="j_id73" itemDisabled="false" itemEscaped="true" itemLabel="Please select..." itemValue="" rendered="true" transient="false"/>
     
                        <UISelectItems id="j_id74" rendered="true" transient="false"/>
     
                    </HtmlSelectOneListbox>
     
                    <HtmlOutputText escape="true" id="j_id73" rendered="true" transient="false" value="Année"/>
     
                    <HtmlSelectOneListbox converter="acsformation.war.converters.StringConverter@1b9f4ee" disabled="false" id="j_id74" immediate="true" localValueSet="false" onchange="A4J.AJAX.Submit('_viewRoot','j_id65:j_id69',event,{'control':this,'similarityGroupingId':'j_id65:j_id69:j_id79','parameters':{'j_id65:j_id69:j_id79':'j_id65:j_id69:j_id79','ajaxSingle':'j_id65:j_id69:j_id74'} ,'actionUrl':'/ACSFormationEE-war/home.faces'} )" readonly="false" rendered="true" required="false" size="1" transient="false" valid="true" binding="#{NewAnnualInterviewBean.selectYearComponent}">
                        org.ajax4jsf.ajax.SUPPORTonchange
     
                        <HtmlAjaxSupport ajaxSingle="true" bypassUpdates="false" disableDefault="false" disabled="false" event="onchange" id="j_id79" ignoreDupResponses="false" immediate="true" limitToList="false" rendered="true" requestDelay="-2147483648" timeout="-2147483648" transient="false"/>
     
                        <UISelectItems id="j_id78" rendered="true" transient="false"/>
     
                    </HtmlSelectOneListbox>
     
                    <HtmlSpacer height="20px" id="j_id75" rendered="true" title="" transient="false" width="1"/>
     
                    <HtmlSpacer height="20px" id="j_id76" rendered="true" title="" transient="false" width="1"/>
     
                    <HtmlAjaxCommandButton ajaxSingle="false" bypassUpdates="false" disabled="false" id="annualBtnCancel" ignoreDupResponses="false" immediate="false" limitToList="false" onclick="document.getElementById('j_id65:confirmMPAnnualInterview').component.hide();return false" rendered="true" requestDelay="-2147483648" size="-2147483648" timeout="-2147483648" transient="false" value="Cancel"/>
     
                    <HtmlAjaxCommandButton action="#{NewAnnualInterviewBean.createNewAnnualInterview}" actionExpression="#{NewAnnualInterviewBean.createNewAnnualInterview}" ajaxSingle="false" bypassUpdates="false" disabled="false" id="annualBtnOK" ignoreDupResponses="false" immediate="false" limitToList="false" onclick="document.getElementById('j_id65:confirmMPAnnualInterview').component.hide();" rendered="false" requestDelay="-2147483648" size="-2147483648" timeout="-2147483648" transient="false" value="OK">
     
                        <HtmlActionParameter assignToBinding="#{GeneralMenuBean.url}" id="j_id77" name="j_id65:j_id69:j_id77" noEscape="false" rendered="true" transient="false" value="/newAnnualInterview.xhtml"/>
     
                    </HtmlAjaxCommandButton>
     
                </HtmlPanelGrid>
     
            </HtmlForm>
     
        </HtmlPanelGroup>
     
    </HtmlModalPanel>

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    ce problème survient quand ya un binding dans un bean session et ça arrive même sans richfaces,
    vérifie que tu n'a pas d'erreurs avec les binding..

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    De quelle type d'erreur peut-il s'agir (pour le binding)? J'ai un peu fouiné, je n'ai rien vu

    Sinon pendant ce temps, j'ai aussi procédé par suppression de code dans la page pour voir d'où ça pouvait venir... en fait ça ne vient pas de cette page. Cette page est appelé via un template "templateBase" et une page de base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <ui:composition template="templates/templateBase.xhtml">
            <ui:define name="entete">logo</ui:define>
            <ui:define name="content">
                <h:panelGrid columns="1" width="100%">
                    <h:panelGroup>
                        <ui:include src="#{GeneralMenuBean.url}"/>
                    </h:panelGroup>
                </h:panelGrid>
            </ui:define>
        </ui:composition>
    Il se trouve que pour une raison mystérieuse, si je ne met rien à la place du mot logo dans "entete" (ou si je ne le défini pas), j'ai cette erreur... sinon tout va bien

    Par curiosité, si vous avez une idée... sinon je vais considéré que c'est résolu et je ne ferai plus de templates sans définition par défaut...

    Merci!

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    mon problème est réapparu (quasiment sur les mêmes champs) suite à une modification d'en un tout autre fichier... j'ai une instabillité bizarre

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par Chatastroff Voir le message
    mon problème est réapparu (quasiment sur les mêmes champs) suite à une modification d'en un tout autre fichier... j'ai une instabillité bizarre
    il faut soigner les includes.fait attention au namespaces en double et ajoute des subview..

    tu na pas de composants a4j tel que a4j:status dans tes pages?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    help...
    Maintenant c'est donc l'inverse: si je define mon "entete" j'ai mon problème de duplicate id

    Dans mon template j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="headercentre">
       <ui:insert name="entete"></ui:insert>
    </div>
    Est ce que cela pourrait venir de l'utilisation de balise div au mileu de jsf???? Est ce que généralement on peut mélanger jsf et code html simple? Ceci est utilisé dans les démos richfaces, donc j'ai supposé que oui...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    pas de compasants a4j:status (mais j'ai des a4j:outputPanel, a4j:includes, etc)

  11. #11
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    ya quoi dans l'entete?
    si tu enleve les bindings pour vérifier si le problème vient de là? car si c'est ça ..richfaces n'est pas en cause, c'est un problème de JSF et Facelets.

    la définition des divs ne peut pas être en cause, ça dépend de ce que tu as mis dans la page..
    tu as vérifier le code généré si tu as des balises en doubles?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Bonjour
    J'ai enlevé les bindings, le problème a disparu (définitivement j'espère...)... je vous tiens au courant si ça revient

    Sinon dans l'entête il n'y a rien justement, et pour les balises en doubles je n'ai rien trouvé

  13. #13
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par Chatastroff Voir le message
    Bonjour
    J'ai enlevé les bindings, le problème a disparu (définitivement j'espère...)... je vous tiens au courant si ça revient

    Sinon dans l'entête il n'y a rien justement, et pour les balises en doubles je n'ai rien trouvé
    donc le problème n'est pas lié à richfaces, il faut juste bien utiliser le binding,
    et je pense que ça arrive juste avec le binding dans un bean en session, si tu le passe en request, ça pourrait bien fonctionner..

    N'oublie pas de fermer le post en mettant

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Ok je retiens d'éviter les bindings en session


    PS: J'ai essayé "Comment modifier les messages d'erreurs par défaut des validators JSF ?" de la FAQ et j j'ai notamment été surpris qu'il ne fallait pas suffixé par l'extension .properties: chez moi ce la va très bien

  15. #15
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Bonjour...

    J'ai le meme problème et je viens de lire et faire ce que vous disiez mais rien.

    En fait mon site il marchait bien jusqu'à ce que j'ai du ajouter un jscookMenu de tomahawk. J'ai fait gaffe avec les id et voilà mon code:

    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
    24
    <h:form id="menu">
    <input type="hidden" name="jscook_action" />
    <t:jscookMenu id="menu" layout="hbr" theme="ThemeGray">
    <t:navigationMenuItem id="menuReb" itemLabel="REBUTS">
    <t:navigationMenuItem id="menuReb_1" itemLabel="Melange" action="null">
    <t:navigationMenuItem id="menuReb_1_1" itemLabel="Rebatché"
    action="frmRebatche" />
    <t:navigationMenuItem id="menuReb_1_2" itemLabel="Arreté"
    action="frmArrete" />
    <t:navigationMenuItem id="menuReb_1_3" itemLabel="Hors Delai"
    action="frmHorsDelai" />
    </t:navigationMenuItem>
    <t:navigationMenuItem id="menuReb_2" itemLabel="Preparation"
    action="null">
    <t:navigationMenuItem id="menuReb_2_1" itemLabel="Enregistrement"
    action="frmPreparation" />
    <t:navigationMenuItem id="menuReb_2_2" itemLabel="Blocage"
    action="frmBlocage" />
    </t:navigationMenuItem>
    <t:navigationMenuItem id="menuReb_3" itemLabel="Confection"
    action="frmConfection"/>
    </t:navigationMenuItem>
    </t:jscookMenu>
    </h:form>
    Mes bean ne sont pas des sessions, sont des Requestbean, definies avec des annotations @ManagedBean. Mes combos vont consulter des données dans une bean @ApplicationScoped. Parfois il les montre bien, je navigue avec le menu, et aprés le message de duplication apparait:

    26 avr. 2010 16:44:57 com.sun.faces.util.Util checkIdUniqueness
    GRAVE: JSF1007 : ID de composant j_idt12:j_idt15 en double dans la vue.
    26 avr. 2010 16:44:57 com.sun.faces.util.Util checkIdUniqueness
    GRAVE: +id: j_id1
    type: javax.faces.component.UIViewRoot@a8198c
    +id: javax_faces_location_HEAD
    type: com.sun.faces.component.ComponentResourceContainer@10469e8
    +id: j_id2
    type: javax.faces.component.UIOutput@c4fedd
    +id: j_idt1
    type: <?xml version="1.0" encoding="ISO-8859-1"?>

    ...
    26 avr. 2010 16:44:57 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
    GRAVE: Error Rendering View[/frmPreparation.xhtml]
    java.lang.IllegalStateException: LID de composant j_idt12:j_idt15 a déjà été détecté dans la vue.
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:724)

    ...

    26 avr. 2010 16:44:57 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet Faces Servlet a généré une exception
    java.lang.IllegalStateException: LID de composant j_idt12:j_idt15 a déjà été détecté dans la vue.
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:724)
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:708).
    .
    Dès que j'enleve le jsCookMenu... l'erreur n'est plus là.

    Qu'est-ce que je peux faire???

    Merci d'avance

  16. #16
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    l'exception est bien explicite, il ne faut pas définir deux composants avec le même id:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:form id="menu">
    <input type="hidden" name="jscook_action" />
    <t:jscookMenu id="menu"
    ...

  17. #17
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Salut... merci de repondre.

    Bon, j'avais pas vu ce id là. Je l'ai corrigé mais j'ai encore le mem erreur et il parle toujours de mes combos, pas du menu.

    :s

  18. #18
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    l'id n'est obligatoire, tu n'es pas obligé de le mettre, comme action lorsque la valeur est null..

  19. #19
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Bon mon problème continue... et en regardant les messages affichés avant par rapport aux bindings, je me demande si ça peut etre l'origine du bug. J'ai mon jsCookMenu pour naviguer, ainsi que des <a ..> pour naviguer aussi. Si j'utilise les lien du <a..> je peux surfer sans aucun probleme. Si j'utilise le jsCookMenu, l'erreur du id dupliqué apparait.

    J'utilise aussi un template, une partie qui contient le menu, l'autre tous les pages. Mes bean sont request. Si j'enleve les binding, comment je vais recuperer les valeurs choisies par l'utilisateur???

    Voici le code de mon jsCookMenu:

    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
    24
    25
    <f:view>
                <h:form>
                <input type="hidden" name="jscook_action" />
                <t:jscookMenu layout="hbr" theme="ThemeGray">
                    <t:navigationMenuItem id="menuReb" itemLabel="REBUTS">
                        <t:navigationMenuItem id="menuReb_1" itemLabel="Melange"
                            action="null">
                            <t:navigationMenuItem id="menuReb_1_1" itemLabel="Rebatché"
                                action="frmRebatche" />
                            <t:navigationMenuItem id="menuReb_1_3" itemLabel="Hors Delai"
                                action="frmHorsDelai" />
                        </t:navigationMenuItem>
                        <t:navigationMenuItem id="menuReb_2" itemLabel="Preparation"
                            action="null">
                            <t:navigationMenuItem id="menuReb_2_1" itemLabel="Enregistrement"
                                action="frmPreparation" />
                            <t:navigationMenuItem id="menuReb_2_2" itemLabel="Blocage"
                                action="frmBlocage" />
                        </t:navigationMenuItem>
                        <t:navigationMenuItem id="menuReb_3" itemLabel="Confection"
                            action="frmConfection"/>
                    </t:navigationMenuItem>
                </t:jscookMenu>
                </h:form>
                </f:view>
    Mon xhtml qui define le form où l'erreur apparait parfois:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <center>
            <table border="5">
            <center>
            <fieldset><legend>Blocage Préparation</legend> <h:form>
                <div class="filter">
                <table>
                    <tr>
                        <th>Date</th>
                        <th>Equipe</th>
                        <th>Cause</th>
                        <th>Code 1</th>
                        <th>Code 2</th>
                        <th>Quantité</th>
                        <th></th>
                    </tr>
                    <tr>
                        <td><t:inputCalendar id="dateProd" required="true"
                            alt="Calendar" title="Calendar" maxlength="10" size="10"
                            binding="#{beanRequest.txtDate}"
                            monthYearRowClass="monthYearRowClass" weekRowClass="weekRowClass"
                            dayCellClass="dayCellClass"
                            currentDayCellClass="currentDayCellClass"
                            popupTodayString="Date de Production :" popupWeekString="Wk"
                            renderAsPopup="true" renderPopupButtonAsImage="true"
                            popupDateFormat="dd/MM/yyyy"
                            validator="#{beanRequest.dateValidator}"
                            converterMessage="La date n'a pas un bon format. Ex: 25/12/2005" />
                        </td>
                        <td><h:selectOneMenu id="equipe" required="true"
                            binding="#{bean.cmbEquipe}"
                            title="Equipe" style="width: 150">
                            <f:selectItems id="lstE" value="#{beanApplication.lstEquipes}" />
                        </h:selectOneMenu></td>
                        <td><h:selectOneMenu id="cause" required="true"
                            binding="#{beanRequest.cmbCause}"
                            style="width: 150">
                            <f:selectItems id="lstC" value="#{beanApplication.lstCauses}" />
                        </h:selectOneMenu></td>
                        <td><h:selectOneMenu id="codeMelange" required="true"
                            binding="#{beanRequest.cmbCode1}"
                            style="width: 150">
                            <f:selectItems id="lstV" value="#{beanApplication.lstCode1}" />
                        </h:selectOneMenu></td>
                        <td><h:selectOneMenu id="codePneu" required="true"
                            binding="#{bEnregistrementSuspicious.cmbCodePneu}"
                            title="Code Melange" style="width: 150">
                            <f:selectItems value="#{bSuspicious.lstCode2}" />
                        </h:selectOneMenu></td>
                        <td><h:inputText id="quantite" required="true"
                            binding="#{beanRequest.txtQuantite}" size="8" maxlength="10">
                            <f:convertNumber type="number" integerOnly="true" />
                        </h:inputText></td>
                        <td><h:commandButton value="Enregistrer"
                            action="#{beanRequest.saveRegisterBlocage}"/></td>
                    </tr>
                </table>
                </div>
                <h:messages id="error" showDetail="#{true}" showSummary="#{false}"
                    errorClass="error" warnClass="warning" />
            </h:form></fieldset>
            </center>
    Dans la console d'Eclipse, je peux voir ce message

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    28 avr. 2010 09:44:14 com.sun.faces.util.Util checkIdUniqueness
    GRAVE: JSF1007 : ID de composant j_idt14:j_idt19 en double dans la vue.
    28 avr. 2010 09:44:14 com.sun.faces.util.Util checkIdUniqueness
    GRAVE: +id: j_id1
     type: javax.faces.component.UIViewRoot@14828e7
      +id: javax_faces_location_HEAD
       type: com.sun.faces.component.ComponentResourceContainer@13e6f83
        +id: j_id2
         type: javax.faces.component.UIOutput@b0c5a
      +id: j_idt1
       type: <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
      +id: j_idt2
       type: <html xmlns="http://www.w3.org/1999/xhtml">
    
      +id: j_idt3
       type: javax.faces.component.UIOutput@158046e
        +id: j_idt4
         type: 
        <title>
        +id: j_idt5
         type:  
    XXXXX
    
        +id: j_idt6
         type: </title>
        <link rel="stylesheet" type="text/css" href="css/style.css"/>
    
      +id: j_idt7
       type: javax.faces.component.UIOutput@18ad9a0
        +id: j_idt8
         type: 
        <table width="100%">
            <tr>
                <td colspan="2">
                <table align="center" width="100%">
                    <tr>
                        <td width="30%"><img src="images/dunlop.jpg" alt=""/></td>
                        <td width="70%">
                        <h1 align="center">REBUTS</h1>
                        </td>
                    </tr>
                </table>
                </td>
            </tr>
            <tr>
                <td valign="top">MENU
                        
        +id: j_idt9
         type: javax.faces.component.html.HtmlForm@d5c653
          +id: j_idt10
           type: 
                <input type="hidden" name="jscook_action"/>
                
          +id: j_idt11
           type: org.apache.myfaces.custom.navmenu.jscookmenu.HtmlCommandJSCookMenu@cfb11f
            +id: menuReb
             type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@17577f9
              +id: menuReb_1
               type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@11799e7
                +id: menuReb_1_1
                 type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@793542
                +id: menuReb_1_3
                 type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@1978b94
              +id: menuReb_2
               type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@4cdac8
                +id: menuReb_2_1
                 type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@1afa486
                +id: menuReb_2_2
                 type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@5a8a7e
              +id: menuReb_3
               type: org.apache.myfaces.custom.navmenu.UINavigationMenuItem@3a586d
        +id: j_idt12
         type: 
    
                <ul>
                    <li><a href="frmRebatche.jsf">Rebatché</a></li>
                    <li><a href="frmHorsDelai.jsf">Hard Tolerance</a></li>
                    <li><a href="frmPreparation.jsf">Preparation</a></li>
                    <li><a href="frmBlocage.jsf">Blocage</a></li>
                    <li><a href="frmConfection.jsf">Confection</a></li>
                </ul>
                </td>
                <td>
        +id: j_idt13
         type: 
            <center>
            <table border="5">
                <tr>
                    <th class="title">Blocage Préparation</th>
                </tr>
            </table>
            </center>
            <center>
            <fieldset><legend>Blocage Préparation</legend> 
        +id: j_idt14
         type: javax.faces.component.html.HtmlForm@83874e
          +id: j_idt15
           type: 
                <div class="filter">
                <table>
                    <tr>
                        <th>Date de Production</th>
                        <th>Equipe de production</th>
                        <th>Cause</th>
                        <th>Code Melange</th>
                        <th>Code Pneu</th>
                        <th>Quantité (Kg)</th>
                        <th/>
                    </tr>
                    <tr>
                        <td>
          +id: dateProd
           type: org.apache.myfaces.custom.calendar.HtmlInputCalendar@12833ff
          +id: j_idt16
           type: 
                        </td>
                        <td>
          +id: equipe
           type: javax.faces.component.html.HtmlSelectOneMenu@6dcfde
            +id: j_idt19
             type: javax.faces.component.UISelectItems@16a3075
            +id: lstE
             type: javax.faces.component.UISelectItems@93886b
          +id: j_idt17
           type: </td>
                        <td>
          +id: cause
           type: javax.faces.component.html.HtmlSelectOneMenu@1e12d33
            +id: lstC
             type: javax.faces.component.UISelectItems@5e7663
          +id: j_idt18
           type: </td>
                        <td>
          +id: codeMelange
           type: javax.faces.component.html.HtmlSelectOneMenu@1ae7b85
            +id: j_idt21
             type: javax.faces.component.UISelectItems@2f60ce
            +id: lstV
             type: javax.faces.component.UISelectItems@7c7894
          +id: j_idt19
           type: </td>
                        <td>
          +id: codePneu
           type: javax.faces.component.html.HtmlSelectOneMenu@1d06d02
            +id: j_idt20
             type: javax.faces.component.UISelectItems@a4be02
          +id: j_idt21
           type: </td>
                        <td>
          +id: quantite
           type: javax.faces.component.html.HtmlInputText@1b6956f
          +id: j_idt22
           type: </td>
                        <td>
          +id: j_idt23
           type: javax.faces.component.html.HtmlCommandButton@cc3e8
          +id: j_idt24
           type: </td>
                    </tr>
                </table>
                </div>
                
          +id: error
           type: javax.faces.component.html.HtmlMessages@11da53
        +id: j_idt25
         type: </fieldset>
            </center>
            <p/>
            <center>
        +id: j_idt26
         type: javax.faces.component.html.HtmlForm@148555
          +id: todaySuspicious
           type: javax.faces.component.html.HtmlDataTable@244f74
            +id: j_idt27
             type: javax.faces.component.UIColumn@13dc4d5
              +id: objet
               type: javax.faces.component.html.HtmlInputHidden@4589eb
              +id: j_idt28
               type: javax.faces.component.html.HtmlCommandButton@161def0
            +id: j_idt29
             type: javax.faces.component.UIColumn@735f45
              +id: j_idt30
               type: javax.faces.component.html.HtmlOutputText@73cc11
              +id: j_idt31
               type: javax.faces.component.html.HtmlOutputText@5a9c6e
            +id: j_idt32
             type: javax.faces.component.UIColumn@d420eb
              +id: j_idt33
               type: javax.faces.component.html.HtmlOutputText@bd4dc2
              +id: j_idt34
               type: javax.faces.component.html.HtmlOutputText@3c0737
            +id: j_idt35
             type: javax.faces.component.UIColumn@fde050
              +id: j_idt36
               type: javax.faces.component.html.HtmlOutputText@191dd1d
              +id: j_idt37
               type: javax.faces.component.html.HtmlOutputText@14bcae9
            +id: j_idt38
             type: javax.faces.component.UIColumn@f690e4
              +id: j_idt39
               type: javax.faces.component.html.HtmlOutputText@1a29450
              +id: j_idt40
               type: javax.faces.component.html.HtmlOutputText@b7141a
            +id: j_idt41
             type: javax.faces.component.UIColumn@188d92e
              +id: j_idt42
               type: javax.faces.component.html.HtmlOutputText@16a5bcb
              +id: j_idt43
               type: javax.faces.component.html.HtmlOutputText@1b08cf3
            +id: j_idt44
             type: javax.faces.component.UIColumn@1f5d699
              +id: j_idt45
               type: javax.faces.component.html.HtmlOutputText@dbf79d
              +id: j_idt46
               type: javax.faces.component.html.HtmlOutputText@15d7752
        +id: j_idt47
         type: </center>
        
        +id: j_idt48
         type:  <br/>
                <br/>
                </td>
            </tr>
            <tr>
                <td colspan="2" class="footerbar">&nbsp;</td>
            </tr>
        </table>
    
      +id: j_idt49
       type: 
    </html>
    L'erreur de id est:

    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
    exception 
     
    javax.servlet.ServletException: LID de composant j_idt14:j_idt19 a déjà été détecté dans la vue.
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)
        org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
     
     
    cause mère 
     
    java.lang.IllegalStateException: LID de composant j_idt14:j_idt19 a déjà été détecté dans la vue.
        com.sun.faces.util.Util.checkIdUniqueness(Util.java:724)
        com.sun.faces.util.Util.checkIdUniqueness(Util.java:708)
        com.sun.faces.util.Util.checkIdUniqueness(Util.java:708)
        com.sun.faces.application.view.StateManagementStrategyImpl.saveView(StateManagementStrategyImpl.java:136)
        com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:126)
        com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:221)
        com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:396)
        com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
        com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
        org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)

    Parfois j'ai cette autre erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    javax.servlet.ServletException: Unexpected error restoring state for component with id j_idt14:dateProd.  Cause: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1.
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)
        org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
     
    javax.faces.FacesException: Unexpected error restoring state for component with id j_idt14:dateProd.  Cause: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1.
        com.sun.faces.application.view.StateManagementStrategyImpl$2.visit(StateManagementStrategyImpl.java:239)

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut same problem
    Bonjour,

    J'ai le même problème et j'utilise <a4j:status>.

    Est-ce que tu peux me dire d'où vient le problème ?
    Merci d'avance.

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

Discussions similaires

  1. [2012] for xml, remplacement quote
    Par jord140 dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 28/05/2014, 11h53
  2. Réponses: 7
    Dernier message: 29/11/2010, 17h34
  3. duplicate entry for key 'primary'
    Par mariek dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/09/2009, 16h43

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