jsf - Composite component PropertyNotFoundException: UINamingContainer does not have the property -


i made composite component upload files have datatable (to show uploaded files) this:

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"     "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"       xmlns:c="http://java.sun.com/jsp/jstl/core"       xmlns:fn="http://java.sun.com/jsp/jstl/functions"       xmlns:h="http://java.sun.com/jsf/html"       xmlns:composite="http://java.sun.com/jsf/composite"       xmlns:f="http://java.sun.com/jsf/core"       xmlns:ui="http://java.sun.com/jsf/facelets"       xmlns:p="http://primefaces.org/ui"> <head>   <title>file upload component</title> </head> <body>     <composite:interface componenttype="components.customfileupload">          <composite:attribute name="list" required="true"              type="java.util.list" />          <<more attributes>>     </composite:interface>     <composite:implementation>         <div id="#{cc.clientid}">              <f:event type="prerendercomponent" listener="#{cc.init()}"/>              <p:datatable id="fileuploadtable" value="#{cc.list}" var="n">                 <<datatable content>>             </p:datatable>              <p:fileupload fileuploadlistener="#{cc.handlefileupload}"                  mode="advanced" dragdropsupport="false" />          </div>     </composite:implementation> </body> </html> 

and backing component

@facescomponent(value="components.customfileupload") public class customfileupload extends uiinput implements namingcontainer, serializable {      private list<fileuploaditem> list;      @override     public void restorestate(facescontext context, object state) {         object values[] = (object[]) state;         super.restorestate(context, values[0]);         list = (list<fileuploaditem>) values[1];     }      @override     public object savestate(facescontext context) {         object[] values = new object[2];         values[0] = super.savestate(context);         values[1] = list;          return values;     }      public void init() {         valueexpression expr = super.getvalueexpression("list");         elcontext ctx = super.getfacescontext().getelcontext();         this.list = (list<fileuploaditem>) expr.getvalue(ctx);     }      public list<fileuploaditem> getlist() {         return list;     }      <<more code>> 

using

<mpc:fileupload list="#{mybean.fileuploadlist}" /> 

when use alone works ok, when use composite component in same page throws exception:

exception type: class javax.el.propertynotfoundexception exception message: .../fileupload.xhtml @59,100 value="#{cc.list}": class 'javax.faces.component.uinamingcontainer' not have property 'list'. 

i've more composite components works fine together. exception occurs fileupload. problem seems similar this topic, in case composite components doesn't nested.

edit: composite component used mpc:fileupload mpc:balloon uses primefaces overlaypanel, like:

<html xmlns="http://www.w3.org/1999/xhtml"       xmlns:h="http://java.sun.com/jsf/html"       xmlns:c="http://java.sun.com/jsp/jstl/core"       xmlns:fn="http://java.sun.com/jsp/jstl/functions"       xmlns:composite="http://java.sun.com/jsf/composite"       xmlns:f="http://java.sun.com/jsf/core"       xmlns:ui="http://java.sun.com/jsf/facelets"       xmlns:p="http://primefaces.org/ui"> <head>     <title>baloon component</title> </head> <body>     <composite:interface>         <composite:attribute name="for" />         <composite:attribute name="dynamic" default="true" />     </composite:interface>     <composite:implementation>          <p:overlaypanel for="@parent:@parent:@parent:#{cc.attrs.for}"              dynamic="cc.attrs.dynamic"              widgetvar="#{fn:replace(cc.clientid, ':', '_')}_widgetvar"             showevent="mouseover" hideevent="mouseout"              dismissable="false" appendtobody="true"             onshow="onshowoverlaypanel(this)">             <composite:insertchildren />         </p:overlaypanel>      </composite:implementation> </body> </html> 

stack trace

javax.el.propertynotfoundexception: ../fileupload.xhtml @58,100 value="#{cc.list}": class 'javax.faces.component.uinamingcontainer' not have property 'list'.     @ com.sun.faces.facelets.el.tagvalueexpression.getvalue(tagvalueexpression.java:111)     @ javax.faces.component.componentstatehelper.eval(componentstatehelper.java:194)     @ javax.faces.component.componentstatehelper.eval(componentstatehelper.java:182)     @ javax.faces.component.uidata.getvalue(uidata.java:730)     @ org.primefaces.component.api.uidata.getdatamodel(uidata.java:764)     @ org.primefaces.component.api.uidata.setrowmodel(uidata.java:571)     @ org.primefaces.component.api.uidata.setrowindexwithoutrowstatepreserved(uidata.java:564)     @ org.primefaces.component.api.uidata.setrowindex(uidata.java:473)     @ javax.faces.component.uidata.invokeoncomponent(uidata.java:1039)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ org.primefaces.component.api.uitabpanel.invokeoncomponent(uitabpanel.java:798)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ javax.faces.component.uicomponent.invokeoncomponent(uicomponent.java:1466)     @ javax.faces.component.uicomponentbase.invokeoncomponent(uicomponentbase.java:671)     @ org.primefaces.util.componenttraversalutils.firstbyid(componenttraversalutils.java:151)     @ org.primefaces.expression.searchexpressionfacade.resolvecomponentbyid(searchexpressionfacade.java:521)     @ org.primefaces.expression.searchexpressionfacade.resolveclientids(searchexpressionfacade.java:246)     @ org.primefaces.util.ajaxrequestbuilder.addexpressions(ajaxrequestbuilder.java:93)     @ org.primefaces.util.ajaxrequestbuilder.update(ajaxrequestbuilder.java:86)     @ org.primefaces.renderkit.corerenderer.buildajaxrequest(corerenderer.java:389)     @ org.primefaces.component.commandbutton.commandbuttonrenderer.buildrequest(commandbuttonrenderer.java:130)     @ org.primefaces.component.commandbutton.commandbuttonrenderer.encodemarkup(commandbuttonrenderer.java:69)     @ org.primefaces.component.commandbutton.commandbuttonrenderer.encodeend(commandbuttonrenderer.java:54)     @ javax.faces.component.uicomponentbase.encodeend(uicomponentbase.java:877)     @ com.sun.faces.renderkit.html_basic.htmlbasicrenderer.encoderecursive(htmlbasicrenderer.java:312)     @ com.sun.faces.renderkit.html_basic.grouprenderer.encodechildren(grouprenderer.java:105)     @ javax.faces.component.uicomponentbase.encodechildren(uicomponentbase.java:847)     @ org.primefaces.renderkit.corerenderer.renderchild(corerenderer.java:85)     @ org.primefaces.renderkit.corerenderer.renderchildren(corerenderer.java:72)     @ org.primefaces.component.overlaypanel.overlaypanelrenderer.encodemarkup(overlaypanelrenderer.java:59)     @ org.primefaces.component.overlaypanel.overlaypanelrenderer.encodeend(overlaypanelrenderer.java:37)     @ javax.faces.component.uicomponentbase.encodeend(uicomponentbase.java:877)     @ com.sun.faces.renderkit.html_basic.htmlbasicrenderer.encoderecursive(htmlbasicrenderer.java:312)     @ com.sun.faces.renderkit.html_basic.grouprenderer.encodechildren(grouprenderer.java:105)     @ javax.faces.component.uicomponentbase.encodechildren(uicomponentbase.java:847)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1819)     @ com.sun.faces.renderkit.html_basic.compositerenderer.encodechildren(compositerenderer.java:78)     @ javax.faces.component.uicomponentbase.encodechildren(uicomponentbase.java:847)     @ com.sun.faces.renderkit.html_basic.htmlbasicrenderer.encoderecursive(htmlbasicrenderer.java:304)     @ com.sun.faces.renderkit.html_basic.grouprenderer.encodechildren(grouprenderer.java:105)     @ javax.faces.component.uicomponentbase.encodechildren(uicomponentbase.java:847)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1819)     @ com.sun.faces.context.partialviewcontextimpl$phaseawarevisitcallback.visit(partialviewcontextimpl.java:543)     @ com.sun.faces.component.visit.partialvisitcontext.invokevisitcallback(partialvisitcontext.java:183)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1652)     @ org.primefaces.component.api.uidata.visitcolumncontent(uidata.java:1014)     @ org.primefaces.component.api.uidata.visitrows(uidata.java:988)     @ org.primefaces.component.api.uidata.visittree(uidata.java:842)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1663)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1663)     @ org.primefaces.component.api.uitabpanel.visittree(uitabpanel.java:920)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1663)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1663)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1663)     @ javax.faces.component.uiform.visittree(uiform.java:362)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1663)     @ javax.faces.component.uicomponent.visittree(uicomponent.java:1663)     @ com.sun.faces.context.partialviewcontextimpl.processcomponents(partialviewcontextimpl.java:383)     @ com.sun.faces.context.partialviewcontextimpl.processpartial(partialviewcontextimpl.java:302)     @ javax.faces.context.partialviewcontextwrapper.processpartial(partialviewcontextwrapper.java:183)     @ org.primefaces.context.primepartialviewcontext.processpartial(primepartialviewcontext.java:57)     @ javax.faces.component.uiviewroot.encodechildren(uiviewroot.java:973)     @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1819)     @ com.sun.faces.application.view.faceletviewhandlingstrategy.renderview(faceletviewhandlingstrategy.java:421)     @ com.sun.faces.application.view.multiviewhandler.renderview(multiviewhandler.java:125)     @ javax.faces.application.viewhandlerwrapper.renderview(viewhandlerwrapper.java:286)     @ javax.faces.application.viewhandlerwrapper.renderview(viewhandlerwrapper.java:286)     @ javax.faces.application.viewhandlerwrapper.renderview(viewhandlerwrapper.java:286)     @ com.sun.faces.lifecycle.renderresponsephase.execute(renderresponsephase.java:120)     @ 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:594)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:295)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:214)     @ org.primefaces.webapp.filter.fileuploadfilter.dofilter(fileuploadfilter.java:100)     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:246)     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:214)     @ org.omnifaces.filter.facesexceptionfilter.dofilter(facesexceptionfilter.java:56)     @ org.omnifaces.filter.httpfilter.dofilter(httpfilter.java:77)     @ 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:231)     @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:149)     @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:512)     @ org.jboss.as.web.security.securitycontextassociationvalve.invoke(securitycontextassociationvalve.java:169)     @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:150)     @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:97)     @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:102)     @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:344)     @ org.apache.coyote.http11.http11processor.process(http11processor.java:854)     @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:653)     @ org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:926)     @ java.lang.thread.run(thread.java:745) 


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -