Matt, Can you please make some noise in the issue tracker on this? Please mark this as a enhancement ( someone has to add StateHolder functinality ) and not a bug ( someone will just remove a few javadoc lines ).
Thanks. Dennis Byrne >-----Original Message----- >From: Matt Hughes [mailto:[EMAIL PROTECTED] >Sent: Thursday, June 29, 2006 02:00 PM >To: 'MyFaces Discussion' >Subject: Re: t:saveState and StateHolder > >Again, it would be of great value to me. > >FYI, it says in the Tomahawk JavaDocs that StateHolder is supported: >http://myfaces.apache.org/tomahawk/apidocs/org/apache/myfaces/custom/savestate/UISaveState.html > >Dennis Byrne wrote: >> The saveState component does not do a StateHolder check. If you want this >> functionality it would be a pretty simple patch. Any takers? >> >> Dennis Byrne >> >> >>> -----Original Message----- >>> From: Matt Hughes [mailto:[EMAIL PROTECTED] >>> Sent: Thursday, June 29, 2006 01:50 PM >>> To: 'MyFaces Discussion' >>> Subject: t:saveState and StateHolder >>> >>> I am experiencing a bit of a problem with using t:saveState. Up until >>> now, I've always just made the bean that I was saving Serializable; but >>> today I came across a situation where I wanted more control over what >>> parts of the bean were actually saved. >>> >>> My code follows. Basically, I have a backing bean with a field that >>> implements StateHolder. I try to saveState just that field: >>> >>> <t:saveState value="#{backingBean.fooBar}" /> >>> >>> When FooBar just implemented Serializable, it got saved and restored >>> fine. When I changed FooBar to implement StateHolder, the >>> saveState/restoreState methods never got called. Am I missing something? >>> >>> /** BACKING BEAN **/ >>> public class BackingBean { >>> private FooBar fooBar; >>> >>> public FooBar getFooBar() >>> { >>> return fooBar; >>> } >>> >>> public void setFooBar(FooBar fooBar) >>> { >>> this.fooBar = fooBar; >>> } >>> } >>> >>> class FooBar implements StateHolder >>> { >>> >>> public Object saveState(FacesContext context) >>> { >>> System.out.println("Saving state"); >>> return null; >>> } >>> >>> public void restoreState(FacesContext context, Object state) >>> { >>> System.out.println("Restoring state"); >>> } >>> >>> public boolean isTransient() >>> { >>> return false; >>> } >>> >>> public void setTransient(boolean newTransientValue) >>> { >>> } >>> } >>> >>> >>> >> >> >> >> >> > >

