java - h:dataTable problem - Target model Type is no a Collection or Array -


i've been literally struggling this, although there tons of tutorials on topic. i'm testing functionality of h:datatable component in jsf 2.0. have following list:

        <h:datatable border="1" styleclass="data zebra" value="#{testtablewb.testlist}" var="items">                <h:column>               <f:facet name="header">                <h:outputtext  value="id"/>               </f:facet>                <h:outputtext value="#{items.id}"/>             </h:column>              <h:column>                 <f:facet name="header">             <h:outputtext  value="name"/>                 </f:facet>             <h:outputtext value="#{items.name}"/>             </h:column>             <h:column>               <f:facet name="header">                 <h:outputtext  value="description"/>               </f:facet>                <h:outputtext value="#{items.description}"/>             </h:column>             <h:column>               <f:facet name="header">               </f:facet>                 <h:selectmanycheckbox id="ids" value="#{items.id}">                     <f:selectitem value="#{ids}" itemlabel="" />                 </h:selectmanycheckbox>             </h:column>             <h:column>               <f:facet name="header">               </f:facet>                 <h:commandlink action="testtablewb.somestupidaction" value="edit">                     <f:param id="itemidedit" value="items.id"/>                 </h:commandlink>             </h:column>             <h:column>               <f:facet name="header">               </f:facet>                 <h:commandlink action="testtablewb.somestupidaction" value="show">                     <f:param id="itemidshow" value="items.id"/>                 </h:commandlink>             </h:column>                      </h:datatable>  

my managed bean looks this:

@managedbean(name="testtablewb") @requestscoped public class testtablewbr extends verificationwbr {

private list<testelement> testlist;  public list<testelement> gettestlist() {     testlist = new arraylist<testelement>();      (int i=0; i<5;i++){         testlist.add(new testelement(new long(i),"name"+i, "descrition"+i));     }      testlist.add(new testelement(10l,"mark", "test element"));      return this.testlist; }  public void settestlist(list<testelement> ptestlist) {     this.testlist = ptestlist; }  public void somestupidaction(){     string parameter =  facescontext.getcurrentinstance().getexternalcontext().getrequestparametermap().get("itemidedit");  } 

so when click on 1 of command links - edit or show, i'm expecting action called , i'm having breakpoint there. instead error : target model type no collection or array , following stacktrace:

    javax.faces.facesexception: target model type no collection or array     @ com.sun.faces.renderkit.html_basic.menurenderer.convertselectmanyvaluesformodel(menurenderer.java:390)     @ com.sun.faces.renderkit.html_basic.menurenderer.convertselectmanyvalue(menurenderer.java:127)     @ com.sun.faces.renderkit.html_basic.menurenderer.getconvertedvalue(menurenderer.java:313)     @ javax.faces.component.uiinput.getconvertedvalue(uiinput.java:1008)     @ javax.faces.component.uiinput.validate(uiinput.java:934)     @ javax.faces.component.uiinput.executevalidate(uiinput.java:1189)     @ javax.faces.component.uiinput.processvalidators(uiinput.java:691)     @ javax.faces.component.uidata.iterate(uidata.java:1424)     @ javax.faces.component.uidata.processvalidators(uidata.java:1015)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uiform.processvalidators(uiform.java:243)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uicomponentbase.processvalidators(uicomponentbase.java:1080)     @ javax.faces.component.uiviewroot.processvalidators(uiviewroot.java:1179)     @ com.sun.faces.lifecycle.processvalidationsphase.execute(processvalidationsphase.java:76)     @ com.sun.faces.lifecycle.phase.dophase(phase.java:101)     @ com.sun.faces.lifecycle.lifecycleimpl.execute(lifecycleimpl.java:118)     @ javax.faces.webapp.facesservlet.service(facesservlet.java:310)     @ org.apache.catalina.core.applicationfilterchain.servletservice(applicationfilterchain.java:427)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:333)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:214)     @ com.bmw.verdict.web.fupload.uploadfilter.dofilter(uploadfilter.java:70)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:246)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:214)     @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:313)     @ org.apache.catalina.core.standardcontextvalve.invokeinternal(standardcontextvalve.java:287)     @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:218)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:648)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:593)     @ com.sun.enterprise.web.webpipeline.invoke(webpipeline.java:94)     @ com.sun.enterprise.web.pesessionlockingstandardpipeline.invoke(pesessionlockingstandardpipeline.java:98)     @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:222)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:648)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:593)     @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:587)     @ org.apache.catalina.core.containerbase.invoke(containerbase.java:1093)     @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:166)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:648)     @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:593)     @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:587)     @ org.apache.catalina.core.containerbase.invoke(containerbase.java:1093)     @ org.apache.coyote.tomcat5.coyoteadapter.service(coyoteadapter.java:291)     @ com.sun.enterprise.web.connector.grizzly.defaultprocessortask.invokeadapter(defaultprocessortask.java:666)     @ com.sun.enterprise.web.connector.grizzly.defaultprocessortask.doprocess(defaultprocessortask.java:597)     @ com.sun.enterprise.web.connector.grizzly.defaultprocessortask.process(defaultprocessortask.java:872)     @ com.sun.enterprise.web.connector.grizzly.defaultreadtask.executeprocessortask(defaultreadtask.java:341)     @ com.sun.enterprise.web.connector.grizzly.defaultreadtask.dotask(defaultreadtask.java:263)     @ com.sun.enterprise.web.connector.grizzly.defaultreadtask.dotask(defaultreadtask.java:214)     @ com.sun.enterprise.web.portunif.portunificationpipeline$putask.dotask(portunificationpipeline.java:382)     @ com.sun.enterprise.web.connector.grizzly.taskbase.run(taskbase.java:264)     @ com.sun.enterprise.web.connector.grizzly.ssl.sslworkerthread.run(sslworkerthread.java:106) 

according documentation datatable component should work list data type. i'm not getting managed bean @ all, guess goes wrong before in life cycle. going wrong here? in advance.

regards, al

ok, solved. used secletbooleancheckbox instead.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -