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

Reply via email to