spring - java.lang.ClassCastException: java.util.HashMap cannot be cast to ClassObject -
i have problem <p:datatable>
in primefaces, can not find error.
class usuarioasig:
public class usuarioasig { private bigdecimal codigopersona; private string nombre; private string paterno; private string materno; private string login; private string observacion; private string tipocontrol; private string externo; private string habilitado; private string nombreperfil; private bigdecimal codigousuario; ...get , set...}
class usuarioasiglistadatamodel:
public class usuarioasiglistadatamodel extends listdatamodel<usuarioasig> implements selectabledatamodel<usuarioasig> { public usuarioasiglistadatamodel(){} public usuarioasiglistadatamodel(list<usuarioasig> data){super(data);} @override public usuarioasig getrowdata(string rowkey) { @suppresswarnings("unchecked") list<usuarioasig> listausuarioasiglectura = (list<usuarioasig>) getwrappeddata(); (usuarioasig usuarioasig : listausuarioasiglectura) { if (usuarioasig.getcodigopersona().equals(rowkey)) { return usuarioasig; } } return null; } @override public object getrowkey(usuarioasig usuarioasig) { return usuarioasig.getcodigopersona(); }}
controller usuarioasigcontroller:
@controller("usuarioasigcontroller") @scope(value = "session") public class usuarioasigcontroller { private list<usuarioasig> listausuarioasig; private hashmap<string, object> selusuarioasig; private usuarioasiglistadatamodel mediumusuarioasigmodel; @autowired usuarioservice usuarioservice; ... public list<usuarioasig> getlistausuarioasig() { listausuarioasig = usuarioservice.selectasig(); return listausuarioasig; } public void setlistausuarioasig(list<usuarioasig> listausuarioasig) { this.listausuarioasig = listausuarioasig; } public void setmediumusuarioasigmodel(usuarioasiglistadatamodel mediumusuarioasigmodel) { this.mediumusuarioasigmodel = mediumusuarioasigmodel; } public usuarioasiglistadatamodel getmediumusuarioasigmodel() { listausuarioasig = usuarioservice.selectasig(); mediumusuarioasigmodel = new usuarioasiglistadatamodel(listausuarioasig); return mediumusuarioasigmodel; } public void onrowselect(selectevent event) { facesmessage msg = new facesmessage("usuario seleccionado", ((usuarioasig) event.getobject()).getnombre()); facescontext.getcurrentinstance().addmessage(null, msg); } }
the error generated when click on 1 of lines of datatable:
asiginst.xhtml:
<h:form id="form"> <p:growl id="msgs" showdetail="true" /> <p:datatable id="usuarioasiglistadatamodel" var="usuarioasig" value="#{usuarioasigcontroller.mediumusuarioasigmodel}" rowkey="#{usuarioasig.codigopersona}" selection="#{usuarioasigcontroller.selusuarioasig}" selectionmode="single" paginator="true" rows="10"> <p:ajax event="rowselect" listener="#{usuarioasigcontroller.onrowselect}" update=":form:msgs" /> <p:column headertext="código" style="width:10%">#{usuarioasig.codigopersona}</p:column> <p:column headertext="nombre" style="width:32%">#{usuarioasig.nombre}</p:column> <p:column headertext="apellidos" style="width:32%">#{usuarioasig.paterno} #{usuarioasig.materno}</p:column> <p:column headertext="tipo control" style="width:20%">#{usuarioasig.tipocontrol}</p:column> <p:column headertext="habilitado" style="width:6%">#{usuarioasig.habilitado}</p:column> </p:datatable> </h:form>
the error generated:
warning: asiginst.xhtml @51,103 listener="#{usuarioasigcontroller.onrowselect}": java.lang.classcastexception: java.util.hashmap cannot cast com.datos.entidades.qry.usuarioasig javax.el.elexception: asiginst.xhtml @51,103 listener="#{usuarioasigcontroller.onrowselect}": java.lang.classcastexception: java.util.hashmap cannot cast com.datos.entidades.qry.usuarioasig @ com.sun.faces.facelets.el.tagmethodexpression.invoke(tagmethodexpression.java:111) @ org.primefaces.behavior.ajax.ajaxbehaviorlistenerimpl.processarglistener(ajaxbehaviorlistenerimpl.java:69) @ org.primefaces.behavior.ajax.ajaxbehaviorlistenerimpl.processajaxbehavior(ajaxbehaviorlistenerimpl.java:56) @ org.primefaces.event.selectevent.processlistener(selectevent.java:40) @ javax.faces.component.behavior.behaviorbase.broadcast(behaviorbase.java:102) @ javax.faces.component.uicomponentbase.broadcast(uicomponentbase.java:760) @ javax.faces.component.uidata.broadcast(uidata.java:1071) @ javax.faces.component.uidata.broadcast(uidata.java:1093) @ javax.faces.component.uiviewroot.broadcastevents(uiviewroot.java:794) @ javax.faces.component.uiviewroot.processapplication(uiviewroot.java:1259) @ com.sun.faces.lifecycle.invokeapplicationphase.execute(invokeapplicationphase.java:81) @ 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:409) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:225) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:169) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:472) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:168) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:98) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:927) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:407) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:999) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:565) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:309) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1110) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:603) @ java.lang.thread.run(thread.java:722) caused by: java.lang.classcastexception: java.util.hashmap cannot cast com.datos.entidades.qry.usuarioasig @ com.controller.usuarioasigcontroller.onrowselect(usuarioasigcontroller.java:217) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.apache.el.parser.astvalue.invoke(astvalue.java:264) @ org.apache.el.methodexpressionimpl.invoke(methodexpressionimpl.java:278) @ com.sun.faces.facelets.el.tagmethodexpression.invoke(tagmethodexpression.java:105) ... 29 more
i'm assuming hashmap<string, object> selusuarioasig
selection.
then in method
public void onrowselect(selectevent event) { facesmessage msg = new facesmessage("usuario seleccionado", ((usuarioasig) event.getobject()).getnombre()); facescontext.getcurrentinstance().addmessage(null, msg); }
you attempting cast hashmap usuarioasig: ((usuarioasig) event.getobject())
Comments
Post a Comment