Guy Bashan schrieb:
Hi,I am trying to use <t:savestate>. I am trying to save the sate of a list which is a member of a backing bean, that is needed to be manipulated (move rows up and down, delete, etc').The list will be "really" saved when "save" is pressed.I am getting this exception: javax.faces.FacesException: Exception while restoring state of component |javax.faces.FacesException: Exception while restoring state of component : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: null][Class: javax.faces.component.html.HtmlForm,Id: frmTargetingParam][Class: javax.faces.component.html.HtmlPanelGroup,Id: j_id_jsp_1379417937_106][Class: org.apache.myfaces.custom.savestate.UISaveState,Id: j_id_jsp_1379417937_108]}| | at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:834)| | at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:822)| | at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:822)| | at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:822)| | at org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspStateManagerImpl.java:316)| | at org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspViewHandlerImpl.java:506)| | at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:85)| | at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)| | at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)| | at org.apache.myfaces.custom.ppr.PPRLifecycleWrapper.execute(PPRLifecycleWrapper.java:68)| | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)| | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)| | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)| | at com.todacell.ui.view.filter.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:136)| | at com.todacell.ui.view.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:61)| | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)| | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)| | at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)| | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)| | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)| | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)| | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)| | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)| | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)| | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)| | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)| | at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)| | at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)| | at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)| | at java.lang.Thread.run(Thread.java:619)| |Caused by: javax.faces.el.PropertyNotFoundException: javax.el.PropertyNotFoundException: Property 'pubListTargetingParamOptions' not writable on type java.util.List| | at org.apache.myfaces.el.convert.ValueExpressionToValueBinding.setValue(ValueExpressionToValueBinding.java:128)| | at org.apache.myfaces.custom.savestate.UISaveState.restoreState(UISaveState.java:101)| | at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:832)| | ... 29 more| |Caused by: javax.el.PropertyNotFoundException: Property 'pubListTargetingParamOptions' not writable on type java.util.List| | at javax.el.BeanELResolver$BeanProperty.write(BeanELResolver.java:247)| | at javax.el.BeanELResolver$BeanProperty.access$100(BeanELResolver.java:209)| | at javax.el.BeanELResolver.setValue(BeanELResolver.java:106)| | at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:68)| | at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$501(FacesCompositeELResolver.java:46)| | at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$6.invoke(FacesCompositeELResolver.java:132)| | at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(FacesCompositeELResolver.java:148)| | at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.setValue(FacesCompositeELResolver.java:128)| | at org.apache.el.parser.AstValue.setValue(AstValue.java:132)| | at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249)| | at org.apache.myfaces.el.convert.ValueExpressionToValueBinding.setValue(ValueExpressionToValueBinding.java:124)| | ... 31 more|When I remove the <t:savestate> things are working, but of course list is being reloaded on each post.Does anyone know what am I doing wrong here?
Looks like you have got your EL expression for the t:saveState tag wrong, and as a result something is doing
#{foo.pubListTargetingParamOptions}
where #{foo} is an object of type List.
Regards, Simon

