Well, as i see, there is no simple solution to this problem :-( The possible 
one to reconstruct any links in the rendered page is a very rough one, i think. 
To implement a page persistency and associate the data object in dependence on 
a cookie value seems to be smarter - if it works.

But i think, the simpliest and smartest way would be, if i would hustle our 
customer to drop this requirement ;-)

Just kidding ;-)

I'll have a look on both of your suggestions, and would appreciate other ones. 
Thank you very much so far.

best,

Rene

"Tapestry users" <tapestry-user@jakarta.apache.org> schrieb am 04.04.05 
21:16:33:
> 
> 
> This problem reminds me of an article, "The Law of Leaky Abstractions":
> http://www.joelonsoftware.com/articles/LeakyAbstractions.html
> 
> The obvious answer is
> 1) Don't keep any state server-side (ie. Visit/HttpSession), possibly
> this could be overriding tapestry persistence mechanism to use cookies.
> 
> The problem is that your HttpSession is going to be associated with the
> all browser instances (at least across browser type, say IE), so you
> can't transparently handle state server-side. You can possibly get close
> if you figure out how to associate a specific different Visit with each
> specific browser window (possibly using techniques as below), but what
> about things like "login"? 
> 
> 2) If you don't want the same login information across these windows,
> you are OK (assuming you can pull off the visit/browser window trick,
> remember you can't store the window instance descriptor itself in the
> session). I think generally, you would store Visits within the
> HttpSession, keyed by some cookied value that describes the window that
> you are communicating with (with one possibly being a "default").
> 
> 3) If you want some common information across these windows, then you
> have a custom solution, and probably want to support another persistence
> "style" in a generic way (ie. page, _window_, session), again using a
> solution like as in 2). Maybe you clone the window information when they
> have a new window, it depends I suppose. I'm not sure how you support
> the new persistence type either, but that's what you would have.
> 
> Joel
> 
> -----Original Message-----
> From: Anatoli Krassavine [mailto:[EMAIL PROTECTED] 
> Sent: Monday, April 04, 2005 9:58 AM
> To: Tapestry users
> Subject: Re: How to handle multiple instances of a page with different
> data in the same session, at the same time ?
> 
>   Hello Erik,
> 
>   Correct me if I am wrong, but it seems to me that
> this is not enough for what Rene needs (and what I
> needed).
>   I am very happy to be proven wrong on this subject -
> will save me lots of hassle, so let me describe a
> scenario.
> 
>   Basically, imagine that I have a page with good deep
> component hierarchy. Say 100 links encoded at
> different levels of hierarchy including generic
> components.
> 
>   I want to have several such pages opened in
> different browser windows by the same user (i.e.
> within same user session as far as Tapestry is
> concerned), each with its own separate workflow.
> 
>   Simple example (yes, I know it is very artificial,
> so please do not flak me on this):
> 
> 1) client runs 3 searches with different queries
> 2) each search opens a new window with separate
> hitlist
> 3) in each window we have different pagination, sort
> options, et cetera, et cetera
> 4) client wants to be able to switch between windows
> seemlessly maintaining the context within each window
> 5) specifically generic links encoded within generic
> components must maintain the page context
> 
>   Cheers,
>    Toly
> 
>  --- Erik Hatcher <[EMAIL PROTECTED]> wrote: 
> > I don't know how this would be accomplished in the
> > cleanest way, but in 
> > Tapestry 3.1 (errr, "Picaso") the property
> > persistence is pluggable 
> > with a builtin capability of persist="session".  I
> > suppose clever links 
> > and services could key off of properties marked as
> > persist="page" such 
> > that links were encoded with those properties
> > automatically (but you 
> > wouldn't want all links encoded this way probably)
> > and that they'd be 
> > extracted and re-set on each request by the service.
> > 
> > What would it take to do this type of thing?
> > 
> >     Erik
> > 
> > 
> > On Apr 4, 2005, at 6:46 AM, Anatoli Krassavine
> > wrote:
> > > 3) There are several approaches to this, but the
> > only
> > > generic one is to encode "window" information in
> > > links. Other approaches include creative handling
> > of
> > > cookies and javascript, but they are tricky and
> > > provide poor cross-platform compatibility.
> > >
> > > 4) The whole point of Tapestry is a complete
> > > abstraction of HTML representation from actual
> > HTTP
> > > workflows, hence link encoding should be done
> > > transparently and cover ALL links on all
> > participating
> > > pages.
> > >
> > > 5) The best way to achieve this is to provide a
> > > wrapper service. This service will wrap standard
> > > services (Action, Direct, etc).
> > >
> > > When generating a representation of HTML link:
> > > a) extract context information fro mthe current
> > page
> > > instance
> > > b) encode relevant information into the link by
> > > appending an extra parameter (at the end)
> > > c) then pass control to wrapped service to
> > generate
> > > link in a "normal" way
> > >
> > > When processing the request:
> > > a) extract information from the link
> > > b) store it in requestCycle as an attribute
> > > c) pass control to wrapped service.
> > > d) page instance could check the attribute in
> > > requestCycle and act accordingly
> > >
> > > I think it cover it all and works quite well.
> > >
> > > Cheers,
> > >  Toly
> > >
> > > [EMAIL PROTECTED]
> > > Software Architect
> > >
> > > --- [EMAIL PROTECTED] wrote:
> > >> Hi @all,
> > >>
> > >> in my current project, i have to ensure, that a
> > user
> > >> can work with
> > >> multiple instances of the same page, but every
> > page
> > >> instance has different data.
> > >> Means, that he can open multiple windows with the
> > >> same page. With a
> > >> plain page, this should be no problem, but in
> > this
> > >> case, the page
> > >> contains a TabPanel, which, as we all know,
> > forces a
> > >> page reload in
> > >> case of changing the current tab page. In other
> > >> cases, it is necessary
> > >> to reload the page with a "location.href" refresh
> > in
> > >> javascript, without
> > >> a form submit.
> > >>
> > >> The problem is:
> > >> if the user opens the page to display data object
> > A,
> > >> after that opens
> > >> another instance of the same page with data
> > object
> > >> B, goes back to A
> > >> and does something with this instance (i.e.
> > forcing
> > >> a page reload or
> > >> changing the tab page), the data of object B is
> > >> displayed in page A, because it was the
> > >> last data object bound to this tapestry page.
> > >>
> > >> Hope, you can understand, what i mean.
> > >>
> > >> How can i handle this ?
> > >>
> > >> best,
> > >>
> > >> Rene
> > >>
> > >
> >
> ______________________________________________________________
> > >> Verschicken Sie romantische, coole und witzige
> > >> Bilder per SMS!
> > >> Jetzt bei WEB.DE FreeMail:
> > >> http://f.web.de/?mc=021193
> > >>
> > >>
> > >>
> > >
> >
> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail:
> > >> [EMAIL PROTECTED]
> > >> For additional commands, e-mail:
> > >> [EMAIL PROTECTED]
> > >>
> > >>
> > >
> > > Send instant messages to your online friends 
> > > http://uk.messenger.yahoo.com
> > >
> > >
> >
> ---------------------------------------------------------------------
> > > 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]
> > 
> >  
> 
> Send instant messages to your online friends
> http://uk.messenger.yahoo.com 
> 
> ---------------------------------------------------------------------
> 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]
> 


______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193


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

Reply via email to