Hi all,

I'm using Tapestry 3.0.3.

I have a page that shows information about a company. It has a persistent 
property 'company' that contains one of my business objects (a Company).

The page is bookmarkable, so I've implemented the IExternalPage interface and 
use a custom ISqueezeAdaptor to convert the Company to a key value and 
vice-versa.

So far so good...

Now, I've added some interactivity to the page so when the user clicks on a 
link the page refreshes and shows the company data in a different way. To 
ensure that the page still knows which company to show I've changed the company 
property to be 'persistent'.

Unfortunately, the entire Company is being serialized into the http session and 
it would be far better if just the key was stored.

I looked for an equivalent of ISqueezeAdaptor and came across IPageRecorder and 
SessionPageRecorder. I thought I could extend SessionPageRecorder to understand 
about Companies and store them in the session as keys. The problem is that it 
seems the IPageRecorder is constructed in BaseEngine#createPageRecorder inside 
quite a bit of code. I could override createPageRecorder and copy the code 
(yuk!) but that won't work because it needs access to fields in BaseEngine that 
are private.

So it seems like there's no convenient way to override the default 
IPageRecorder.

My questions are: am I actually trying to do this the right way? Is there an 
alternative to using PageRecorder for deciding how to represent an object in a 
session? Should I just use the company key as my property and forget about all 
these clever SqueezeAdaptors and so on :-) ?

Thanks,

Paul




--

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and destroy this e-mail. Any unauthorized 
copying, disclosure or distribution of the material in this e-mail is strictly 
forbidden.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to