i have problem using htmldatatable viewing data database.
when create component, table has (not always) twice number of columns.
it shown correctly , after several refreshes (without move in dtb or something) there example 6 columns instead of 3 , application (sometimes) become unstable. since time can't work table because reports "duplicate id component"..
simple example (source: http://balusc.blogspot.com/2006/06/using-datatables.html):
<h:form id="bde"> <h:datatable id="tbl" binding="#{mybde.datatable}" value="#{mybde.datalist}" var="bdeitem"> <h:column> <f:facet name="header"> <h:outputtext value="s" /> </f:facet> <h:outputtext value="#{bdeitem.s}" rendered="#{!mybde.editmoderow}"/> <h:inputtext value="#{bdeitem.s}" rendered="#{mybde.editmoderow}" required="true" size="3"/> </h:column> <h:column> <f:facet name="header"> <h:outputtext value="id" /> </f:facet> <h:outputtext value="#{bdeitem.id}"/> </h:column> </h:datatable> </h:form>
and java.class
protected htmldatatable datatable; public void setdatatable(htmldatatable datatable) { this.datatable = datatable; } public htmldatatable getdatatable() { if (datatable == null) { datatable = new htmldatatable(); datatable.setrows(default_table_rows); } return datatable; }
and error message:
javax.servlet.servletexception: component id j_idt92:bde:tbl:j_idt129 has been found in view. javax.faces.webapp.facesservlet.service(facesservlet.java:422) root cause java.lang.illegalstateexception: component id j_idt92:bde2:tbl:j_idt129 has been found in view. com.sun.faces.util.util.checkiduniqueness(util.java:821) com.sun.faces.util.util.checkiduniqueness(util.java:805) com.sun.faces.util.util.checkiduniqueness(util.java:805) com.sun.faces.util.util.checkiduniqueness(util.java:805) com.sun.faces.util.util.checkiduniqueness(util.java:805) com.sun.faces.util.util.checkiduniqueness(util.java:805) com.sun.faces.application.view.statemanagementstrategyimpl.saveview(statemanagementstrategyimpl.java:144) com.sun.faces.application.statemanagerimpl.saveview(statemanagerimpl.java:133) com.sun.faces.application.view.writebehindstatewriter.flushtowriter(writebehindstatewriter.java:225) com.sun.faces.application.view.faceletviewhandlingstrategy.renderview(faceletviewhandlingstrategy.java:418) com.sun.faces.application.view.multiviewhandler.renderview(multiviewhandler.java:131) com.sun.faces.lifecycle.renderresponsephase.execute(renderresponsephase.java:121) 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:410)
followed tree of components. thing there's nothing duplicated in code, datatable create new columns , after it's duplicated
i have 2 working similar modules, , third doesn´t work.
have ever met kind of problem?
thanks advice
this can happen if bean session scoped instead of request scoped , you're sharing bean among multiple views. best keep bean component been bound in request scope.
as alternative, can use datamodel
value instead of binding table htmldatatable
if functional requirement selected row.
Comments
Post a Comment