Yes.
Write a custom squeeze adapter implementation to handle your objects.
Robert
Martin Strand wrote:
I often find myself doing this, stuffing an object id into a
DirectLink or storing an object id in a persistent page property and
then recreating the object in pageBeginRender. Can't Tapestry handle
this conversion instead? I'm thinking of something like the
"converter" parameter in the For component.
On Wed, 18 Jan 2006 18:15:24 +0100, Patrick Casey
<[EMAIL PROTECTED]> wrote:
A fairly standard approach is to not send the object out on the
directlink, but instead send out some sort of uniquely identifiable
key and
the pull the object back out of persistent storage as the first
operation in
your direct link.
If you're talking about DB objects, then putting the unique key on
the outbound URL and then reloading it in the listener is certainly the
easiest approach (although not without security implications because
you're
opening a door for the outside world into your key structure).
Alternately, if it's something that doesn't have a "natural" storage
mode or key, you can just wrap it in an object with a key then stuff
it in a
server-side linkedhashmap that you then store in the client session. The
reason you probably want to use a linked hash map is to "forget" about
objects you stuffed in there a while ago so that you don't end up
with 2,000
objects cluttering up server side memory when the user is only likely
to use
the most recent 5 or so of them. In practice, I've found a page
memory of 10
is almost always big enough.
--- Pat
-----Original Message-----
From: Stijn Christiaens [mailto:[EMAIL PROTECTED]
Sent: Wednesday, January 18, 2006 3:50 AM
To: Tapestry users
Subject: ActionLink and DirectLink
Hello everybody,
previously I used ActionLink to do my dirty work, but it seems that
this
is not such a safe approach. In transferring to DirectLink I am a
little
bit unsure about how to continue.
I use my DirectLink with a listener and parameters. Unfortunately, the
parameter Object I have to pass is too big to be serialized in the URL
(the DirectLink does nothing because the URL is too long). So I
probably
have to pass some kind of key (no database key as it is an Object in
edit, so not saved yet and not to be saved yet either) as parameter.
Where do I store the Object that is associated with this key?
Do I place it on the Component or somewhere on something I can access
using IRequestCycle?
Thanks in advance!
Ciao,
Stijn
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]