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 *