Thanks for the advice!
My domain objects are identified by id and as i do not want to use
session for that page, id is not available at the activate() time.
Currently i'm using the datasqueezer to load the object and set a hidden
field as the first field in the form so that the domain object is
available when tapestry set other field's value onto it.
hv @ Fashion Content wrote:
Have you tried overloading page.activate() to load your domain object?
I find it a bit hard to suggest a solution as I don't know how you identity
your domain object.
How do you know which one to load? Also is the form in a component or a
page.
In general I think a good solution is using a proxy domain object that loads
the actual one and passes on operations on it.
I identify the user domain object in a ServletFilter, so once Tapestry
handles the request there will always be a domain object.
Henrik
"Reggie Chan" <[EMAIL PROTECTED]> skrev i en meddelelse
news:[EMAIL PROTECTED]
I'm using tapestry 4 and hibernate in our application, we are using ognl
to update the domain object's properties like user.login, user.email etc..
However, we are unable to load the user object before these properties
being set during the rewind stage.
After looking at mailing list archive and forum, I've found the following
approaches to deal with the problems
1. Adding a hidden field as the first input in the form and use
IActionListener to load the domain object from hibernate. This relies on
the fact that I.E. passes first fields up in the order of they are shown
in the form. However, does it have to happen for other browsers and for
I.E. 7 for future extensibility? I've found that firefox use the order
that the input nodes created instead of the order that they are shown in
the html. Although in this case, most likely, the hidden key input would
still be the first input to be passed to the server, this does show the
possibility that different browser could have different behavior in that
aspect.
2. Using DataSqueezer to load the domain object. I haven't tried this yet,
but does it always have to ensure that the hidden key field is passed as
the first input?
3. Using a "fake" domain object and then copy all properties over to the
real domain object before save.
4. Temporarily save the properties to the page object then copy all to the
real domain object before save.
5. Use http session to persist the domain object, but the user will not be
able to open muiltiple tags in firefox or clone a new browser instance by
"Ctrl-n" in I.E. as they will share the same session.
6. Use http session as 5., but add a sychronization token in all form to
avoid mis-updating.
I think this problem is pretty much a common problem to many users, could
someone share how they deal with this issue and give us some advice on the
issue. We're afraid that we've missed out some better ways to deal with
the issue in tapestry, as we are new to tapestry e.g. we can tell tapestry
to set certain properties first and the others after instead of relying on
browser's behavior, etc.. Our development team has struggled in this issue
pretty badly.
Thanks in advance!
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]