Hi Gabriel-

are your proposing an enhancement to s:head as i think this concept is
already covered by s:head which sets up global attributes?
http://struts.apache.org/2.0.6/docs/head.html

or a separate "s:conversation" tag ?

M-
----- Original Message -----
From: "Gabriel Belingueres" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <user@struts.apache.org>
Sent: Tuesday, March 04, 2008 8:00 AM
Subject: Re: Conversation Scope?


> Why model-driven? I don't fully get it.
> I've done several S2 apps by now and never fell the time to use the
> model driven interface before (for me this is syntax sugar.)
>
> Now why is this important for supporting conversation scope?
> Is it for not writing code like
> ${conversationsMap[conversationId].myproperty} in the view? it is easy
> to create a tag that inject the conversation into a request-scoped
> variable like this:
> <s:conversation var="myconversation"/>
>
> then use ${myconversation.myproperty}
>
> Gabriel
>
> 2008/2/24, Jeromy Evans <[EMAIL PROTECTED]>:
> > I hadn't noticed this was already part of the 2.1.x core and default
stack:
> >
> > http://struts.apache.org/2.x/docs/scoped-model-driven-interceptor.html.
> >
> > I haven't checked the code but it reads the same
> >
> > Ray Clough wrote:
> > > I'm definitely going to have to watch the 'ranting'.   (By the way,
> > > Adam, you have to stop grappling with SWF when you get married.)
> > >
> > > It seems to me that 'ModelDriven' is not much use without
> > > ConversationScope, because you have to manually manage the
> > > model/session interaction in all but the first action in the
> > > conversation.  What I'm talking about with the term
> > > 'ConversationScope' is the need not to have to explicitly store,
> > > check, and remove my model data from the session in each action.
> > > Basically my action always looks like this:
> > >
> > >   1. check session for model.
> > >   2. if found, is model for the current conversation
> > >          * if no delete the model from the session, create new model
> > >            and place in session.
> > >          * if yes place it into the Action's private variable
> > >   3. ...... whatever the action does .......
> > >   4. is the conversation finished?
> > >          * if no, make sure model is in session
> > >          * if yes, remove model from session
> > >
> > > This seems like a pretty straight-forward use case for an
> > > interceptor.  I'm thinking of a small object called
> > > "ConversationScope", which, of course, has to be stored in the
> > > session. The ConversationScope obj contains a map and a method to
> > > return its ConversationId, and methods to add and remove objects from
> > > its map.  The interceptor could  do to the ConversationScope the
> > > actions which the Action currently does, as delineated above.  It
> > > might be nice to inject the ConversationScope into the action, but  I
> > > don't personally know injection well enough to do that.  A full
> > > solution with injection should have a "ConversationAware" interface
> > > which includes a "ConversationId" attribute.  It might be better to
> > > use annotations rather than an interface declaration.
> > >
> > > I'm just thinking on paper here, but it doesn't seem like any massive
> > > over-architecting is needed.  I personally have almost no experience
> > > with Spring, and every time I touch it everything breaks.  Guice
> > > sounds like a nicer solution, but there is not much tutorial info on
it.
> > >
> > > Thanks,
> > > - rc
> > >
> > >
> > > Adam Hardy wrote:
> > >> Is it worth building a mechanism for conversation scope, compared to
> > >> the complexity it introduces? I really dislike Spring Webflow with
> > >> its conversation scope, stringent encapsulation and storage of
> > >> massive amounts of data in various maps that locks away everything
> > >> out of sight and makes it all taste like it's been massively
> > >> over-architected (and of course the practically insurmountable
> > >> learning curve)
> > >>
> > >> Isn't it just easier to clean your variables out of the session
> > >> manually when done? I'm not trying to provoke another rant, it's just
> > >> that I've suffered my fair share of pain grappling with SWF and I
> > >> find all justifications of its complexity unwarranted.
> > >>
> > >> Adam
> > >>
> > >> Ray Clough on 24/02/08 02:23, wrote:
> > >>> Thanks Jeromy.  (usually my wife is the only one who notices my
> > >>> 'rants').
> > >>>
> > >>> Jeromy Evans wrote:
> > >>>> Hi Ray,
> > >>>>
> > >>>> I'm not sure, but check out Tom's new scope plugin as it may get
> > >>>> you part of the way there.
> > >>>>
> > >>>> http://cwiki.apache.org/S2PLUGINS/scope-plugin.html
> > >>>>
> > >>>> I was just reading one of your rants from August 07 that mentioned
> > >>>> the need to use ModelDriven's model across a conversation and think
> > >>>> this will be useful.
> > >>>>
> > >>>> cheers,
> > >>>> Jeromy Evans
> > >>>>
> > >>>> Ray Clough wrote:
> > >>>>> JSF has a "ConversationScope" for extended series of
> > >>>>> requests/responses
> > >>>>> dealing with the same topic, and usually the same data model.  I'm
> > >>>>> thinking
> > >>>>> of writing an interceptor to simulate ConversationScope, and I'm
> > >>>>> wondering
> > >>>>> if this has not already been done, and if so, does anyone have
> > >>>>> details,
> > >>>>> code, etc.
> > >>
> > >>
> > >> ---------------------------------------------------------------------
> > >> 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]
>
>


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

Reply via email to