In your pageBeginRender, do getRequestCycle().isRewinding() to detect
whether it is rewinding or not, and perform the action accordingly

-----Original Message-----
From: Yifu Huang [mailto:[EMAIL PROTECTED] 
Sent: Saturday, November 12, 2005 11:33 AM
To: [email protected]
Subject: RE: [jira] Closed: (TAPESTRY-744) page method pageBeginRender() was
been invoked twice when direct link to a page

Hi,

Thanks for your response.
I have a additional question:
In tapestry, is there any way to invoke an method when "page begin render" 
one time?

I need retrieve the records from database before the page begin render, this

is a heavy weight operation, I don't want it will be invoke twice.

Thanks.

Kind regards.


Huang Yifu  酴瘏腦


>From: "Howard M. Lewis Ship (JIRA)" <[email protected]>
>To: [EMAIL PROTECTED]
>Subject: [jira] Closed: (TAPESTRY-744) page method pageBeginRender() was 
>been invoked twice when direct link to a page
>Date: Sat, 12 Nov 2005 04:08:05 +0100 (CET)
>
>      [ http://issues.apache.org/jira/browse/TAPESTRY-744?page=all ]
>
>Howard M. Lewis Ship closed TAPESTRY-744:
>-----------------------------------------
>
>     Resolution: Invalid
>      Assign To: Howard M. Lewis Ship
>
>This is correct behavior; pageBeginRender() is invoked when a form within a

>page rewinds, then again when the response page is rendered.
>
> > page method pageBeginRender() was been invoked twice when direct link to

>a page
> > 
>---------------------------------------------------------------------------
----
> >
> >          Key: TAPESTRY-744
> >          URL: http://issues.apache.org/jira/browse/TAPESTRY-744
> >      Project: Tapestry
> >         Type: Bug
> >   Components: Framework
> >     Versions: 4.0
> >  Environment: windows jboss
> >     Reporter: HUANG Yifu
> >     Assignee: Howard M. Lewis Ship
>
> >
> > I used a @Submit component to invoke the delete method of page class,
> > -----------------
> > <span jwcid="@Submit" class="button" listener="ognl:listeners.delete" 
>label="message:button.delete"
> >                     onclick="javascript: return deleteConfirm();" 
>parameters="ognl:currentObject.id" />
> > -----------------
> > and found the pageBeginRender method was invoked twice, the flow listed 
>below:
> > =================================
> > first time(invoke pageBeginRender method)
> > -----------------
> > at 
>org.apache.tapestry.AbstractPage.firePageBeginRender(AbstractPage.java:478)
> > at 
>org.apache.tapestry.AbstractPage.beginPageRender(AbstractPage.java:529)
> > at 
>org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:439)
> > at org.apache.tapestry.form.Form.trigger(Form.java:338)
> > at 
>org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.jav
a:144)
> > at 
>org.apache.tapestry.engine.DirectService.service(DirectService.java:130)
> > then invoke listener mothod delete()
> > ------------------------------------------
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at 
>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3
9)
> > at 
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
l.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:585)
> > at 
>org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeTargetMethod(L
istenerMethodInvokerImpl.java:214)
> > at 
>org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod
(ListenerMethodInvokerImpl.java:155)
> > at 
>org.apache.tapestry.listener.ListenerMethodInvokerImpl.searchAndInvoke(List
enerMethodInvokerImpl.java:124)
> > at 
>org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod
(ListenerMethodInvokerImpl.java:73)
> > at 
>org.apache.tapestry.listener.SyntheticListener.actionTriggered(SyntheticLis
tener.java:51)
> > at 
>org.apache.tapestry.listener.ListenerInvokerTerminator.invokeListener(Liste
nerInvokerTerminator.java:51)
> > at 
>$ListenerInvoker_10778cfb798.invokeListener($ListenerInvoker_10778cfb798.ja
va)
> > at 
>org.apache.tapestry.form.AbstractSubmit.handleClick(AbstractSubmit.java:81)
> > at 
>org.apache.tapestry.form.AbstractSubmit.rewindFormComponent(AbstractSubmit.
java:49)
> > at 
>org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractForm
Component.java:115)
> > at 
>org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> > then the second time(invoke pageBeginRender method)
> > ---------------------------------------
> > at 
>org.apache.tapestry.AbstractPage.firePageBeginRender(AbstractPage.java:478)
> > at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:268)
> > at 
>org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:368)
> > at 
>org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(Respo
nseRendererImpl.java:71)
> > at 
>$ResponseRenderer_10778cfb78a.renderResponse($ResponseRenderer_10778cfb78a.
java)
> > at 
>org.apache.tapestry.engine.DirectService.service(DirectService.java:135)
>
>--
>This message is automatically generated by JIRA.
>-
>If you think it was sent incorrectly contact one of the administrators:
>    http://issues.apache.org/jira/secure/Administrators.jspa
>-
>For more information on JIRA, see:
>    http://www.atlassian.com/software/jira
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to