Hi,
the problem is the surrounding t:datatable: Children of this component all get the same id as the component does not create new objects for each iteration.
-> I recommend switching to the h:datatable or writing your own component!
Greets, Hans


Saurabh Rasinghaney wrote:

Hi All,

We are facing a problem (java.lang.IllegalStateException: Client-id : _id3ToggleCollapsed is duplicated in the faces tree.) with Collapsible Panel, when we are using Collapsible inside a data table. When we display one row it shows one panel but when we display multiple rows it gives error (attached below).

I am not sure if we can do this or not. The code and exception trace is attached below.

Any suggestions are welcome. Thanks in advance for your help.

Thanks,

Saurabh

<t:dataTable id="test_dt" var="prodReq" value="#{prqViewBacking.productionRequests}" preserveDataModel="false"

                    styleClass="scrollerTable"

                headerClass="standardTable_Header"

                footerClass="standardTable_Header"

                rowClasses="standardTable_Row1,standardTable_Row2"

columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"

        >

<h:column>
                <f:facet name="header">

<t:div style="width:500px;background-color:#CCCCCC;align=left">

                              <h:outputText value="Production Request "/>

                 </t:div>

                </f:facet>

<t:collapsiblePanel dir="ltr" collapsed="#{prodReq.collapsed}">

                      <h:panelGrid>

                              <h:inputText value="#{prodReq.firstName}"/>

                              <h:inputText value="#{prodReq.surName}"/>

                              <h:inputText value="#{prodReq.collapsed}"/>

                          </h:panelGrid>

                </t:collapsiblePanel>

            </h:column>

import java.util.ArrayList;

/**

 *

 */

public class PrqViewBacking implements java.io.Serializable {

    //private boolean _collapsed=true;

    private ArrayList<ProductionRequest> _productionRequests;

    public PrqViewBacking() {

ArrayList<ProductionRequest> productionRequests = new ArrayList<ProductionRequest>();

                //test data

productionRequests.add(new ProductionRequest("A","B","12/12/2006")); productionRequests.add(new ProductionRequest("c","d","12/12/2006"));

//productionRequests.add(new ProductionRequest("e","f","12/12/2006"));

//productionRequests.add(new ProductionRequest("g","h","12/12/2006"));

                this.setProductionRequests(productionRequests);

}
                public ArrayList getProductionRequests() {

System.out.println("In get prod req" + _productionRequests);
                                return _productionRequests;

                }

                public ArrayList productionRequests() {

System.out.println(_productionRequests);
                                return _productionRequests;

                }

public void setProductionRequests(ArrayList productionRequests) {

                                _productionRequests = productionRequests;

                }

}

public class ProductionRequest implements java.io.Serializable {

                private String _firstName;

                private String _surName;

                private String _birthDate;

                private static Integer id=0;

                private boolean _collapsed=true;

                public static String getId() {

                                return "_" + (++id).toString();

                }

                public ProductionRequest() {

//Do Nothing
                }

public ProductionRequest(String firstName, String surName, String birthDate) {

                                setFirstName(firstName);

                                setSurName(surName);

                                setBirthDate(birthDate);

                }

                  public boolean collapsed() {

                        return _collapsed;

                  }

    public boolean isCollapsed() {

        return _collapsed;

    }

    public void setCollapsed(boolean collapsed) {

        _collapsed = collapsed;

    }

    public boolean getCollapsed() {

       return _collapsed;

    }

                public String getBirthDate() {

                                return _birthDate;

                }

                public void setBirthDate(String birthDate) {

                                this._birthDate = birthDate;

                }

                public String getFirstName() {

                                return _firstName;

                }

                public void setFirstName(String firstName) {

                                this._firstName = firstName;

                }

                public String getSurName() {

                                return _surName;

                }

                public void setSurName(String surName) {

                                this._surName = surName;

                }

}

14:48:24,390 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception

java.lang.IllegalStateException: Client-id : _id3ToggleCollapsed is duplicated in the faces tree.

at org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:241)

at org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:255)

at org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:255)

at org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:251)

at org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:251)

at org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:255)

at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:204)

at org.apache.myfaces.taglib.core.ViewTag.doAfterBody(ViewTag.java:139)

at org.apache.jsp.app.PrqView_jsp._jspx_meth_f_view_0(org.apache.jsp.app.PrqView_jsp:140)

at org.apache.jsp.app.PrqView_jsp._jspService(org.apache.jsp.app.PrqView_jsp:100)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)

at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)

at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)

at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)

        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)

at org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)

        at java.lang.Thread.run(Thread.java:595)

Best Regards,

________________

*Saurabh Raisinghaney *



--
Mit freundlichen Grüßen,

------------------------------
Hansjörg Meuschel
Martin-Treu-Str. 40
90403 Nürnberg
Tel.   +49 (0)911 274 278 1
mobil: +49 (1)60 725 3479
mail:  [EMAIL PROTECTED]
http://www.meuschel.net

Reply via email to