Glad you liked my hit-list :)

Basic forms are a field and a button. Advanced forms add all the bells
and whistles of client-side validation, multiple submit buttons
requiring different tags, variable form appearance, partial refresh form
submissions, and so on...

There's not really a specifically different component for simple forms
or advanced ones, although there are a couple extensions of form
components for Ajax enhanced pages. 

</bd>

-----Original Message-----
From: Harry Harris [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 09, 2006 10:16 AM
To: Tapestry users
Subject: Re: Help with Page Life cycle

Thanks for the great explanation Brian, really brilliant :)

Just another question, you mentioned a basic form, is there an advanced
one?
If so, what's the difference between them?

Regards

On 8/9/06, Brian Duchek <[EMAIL PROTECTED]> wrote:
>
> Couple things are real close to your understanding. Here's a quick
list
> of things to fill in a couple gaps that took me months to grok. :)
>
> * Pages render when requested by a browser, AND when a form is
submitted
> to them. This is a fact of the framework.
> * cycle.isRewinding() identifies the rendering of the page when it is
> resolving a form submission. The good news is that it's fast. It only
> renders the elements in the form, and discards most of the
presentation
> html.
> * The reason your listener is getting called twice is likely a common
> pitfall with forms - you probably put a listener on your form AND on
the
> submit button. Only one is needed for basic forms - use the form
> listener so users can hit Enter to submit the form.
> * If your form submission goes right back to the same page, then you
can
> definitely expect two pageBeginRenders to get called. One is the
rewind
> of the form, and the next is the re-rendering of the page for display.
>
> There's a slight chance that something quirky is going on causing your
> form to actually double-post to the server. That would be a
client-side
> bug, and might take some browser testing tools to discover.
>
> </bd>
>
>
>
> -----Original Message-----
> From: Harry Harris [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, August 09, 2006 5:37 AM
> To: [email protected]
> Subject: Help with Page Life cycle
>
> Hello there! I've just started with tapestry, and I was wondering if
> anyone
> cares to give me a little help understanding page life cycle :)
>
> Its a simple crud scenario.
> So I have a page that implements PageBeginRenderListener, I read that
> this
> method is called just before page begins to render, so I guessed (of
> course
> I might be wrong :P) that there would be a nice place to initialize
some
> objects:
>
> public void pageBeginRender(PageEvent event) {
>        if(getCurrentUser == null){
>          setCurrentUser(new User());
>          setUserList(getUserService().getUserList());
>         }
>     }
>
> Question is: When I'm saving my object this method is called twice,
the
> first one, for my surprise currentuser was null, then, just after that
> it's
> called again but this time with proper values set (from the page). I
was
> debugging, and both times cycle.isRewinding() was true. This has a
major
> impact on my performance, since it hits db twice...
>
> Ok, so I thought that would be the only time that methods were called
> twice
> :(
>
> But the listener associated with the form is also being called twice:
>
> public IPage registerUser(IRquestCycle cycle){
> ...
> }
>
> This method is being called twice, and also the cycle.isRewinding() is
> true
> on both times...
>
> I just would like to have a better view of how things work on tapestry
> and
> how can I avoid those duplicated method calling
>
> My best regards
>
> ---------------------------------------------------------------------
> 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