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]
