public void pageBeginRender(PageEvent event){
  recorderLocked = true;
 }
 public void pageEndRender(PageEvent event){
  recorderLocked = false;
 }
 
The above is render listener's mothod. The listener is added to the page in finishLoad(). In component java code, fireObservedChange() is invoked if recorderLocked is true, otherwise this mothod is not invoked.
 
When I click the page for the first time, an exception that indicates some states were not been persistented is thrown.
 
What's wrong with my code?
 
----- Original Message -----
Sent: Friday, September 20, 2002 11:16 AM
Subject: Re: [Tapestry-developer] component state

Page recorders are locked after the page begins rendering a real response.  You must ensure that no changes occur to persistent properties after this point.  Use the PageRenderListener events to know when a render is about to start.
----- Original Message -----
From: xuzhou
Sent: Thursday, September 19, 2002 10:30 PM
Subject: Re: [Tapestry-developer] component state

net.sf.tapestry.ApplicationRuntimeException
    Page recorder for page Home is locked after a commit(), but received a change to property separator of component Home/datagrid.
Stack Trace:
  • net.sf.tapestry.record.PageRecorder.observeChange(PageRecorder.java:144)
  • net.sf.tapestry.AbstractComponent.fireObservedChange(AbstractComponent.java:283)
The above is throwned exception when the fireObservedChange() is invoked to persistent the component's state. How to avoid this exception?
 
----- Original Message -----
Sent: Thursday, September 12, 2002 7:32 PM
Subject: Re: [Tapestry-developer] component state

A component can invoke fireObservedChange() just like a page can.
 
However, components don't have the equivalent of detach().
 
Instead, they must implement interface PageDetachListener and implement method finishLoad() to register as a listener with the page.
----- Original Message -----
From: xuzhou
Sent: Thursday, September 12, 2002 3:48 AM
Subject: [Tapestry-developer] component state

Hi there,
 
How to develope a component which can persistent its state by itself?
 
I have refer the Persistent Component State in Chapter 5 of Developer's Guide, but the component seems to lost its state.
 
How to do?
 
Thanks.
 
 

Reply via email to