From: Jeremy Quinn > On Tuesday, November 4, 2003, at 01:43 PM, Reinhard Poetz wrote: > > > catch (break) { > // a continuation has been started > > } > > catch (continue) { > // a continuation has been resumed > > } > > } > > > > IIRC catch(break) is must be used as "top-level" statement > > I think this is why they did not work before > > > (... but this is only a guess - never tried catch(continue) but > > catch(break) > > works for me.) > > They both work for me too, so does : > > catch (return) { > // the page has finished rendering > } > > So I have very fine-grained control over the session management :) > > What I am not sure about now, is whether the values of widgets on the > Form are bound to the Bean via object references, or if they are > independent copies. > > If they are copies, and the Bean does not get touched during the > SendPageAndWait/Validate cycle then all one should need to do > to manage > the HibernateSession is this: > > . . . > // get the User > form.load (user); > session.close(); > form.showForm (formURI); > session = factory.createSession (); > form.save (user); > // save the User > . . . > > If I need to make a 'browser' of 'lazy-initialised' > relationships then > I would be using JXTemplate rather than Woody, with a dynamic model, > and I still have enough control to manage the Session with these > call-back handlers. Excellent! > > Thanks for your help.
Cocoon Forms Widgets (aka Woody Widgets) have their own values. If you do "form.load(myBean)" the values are read out from the bean (--> copies - no references). If you are finished with data collecting you can write them back using "form.save(myBean)" Cheers, Reinhard