As I said you CAN use it to "span" the same snippet instance for
multiple pages. Please see the two fundamental functions offered by
StatefulSnippet: link and redirect. Lift book provided correct
information.


On Apr 12, 5:44 am, Oliver Lambert <olambo...@gmail.com> wrote:
> On Sun, Apr 12, 2009 at 7:14 AM, marius d. <marius.dan...@gmail.com> wrote:
>
> > The StatefulSnippet is not a snippet instance that is always used in
> > the context of your session.
>
> Yikes! in that case, I wrote a whole application based on false assumption.
> It says in the lift book
> a StatefulSnippet is "ideal for small, conversational state, such as a form
> that spans multiple pages"
> If it spans multiple pages, doesn't this kind of imply the same instance in
> the session?
>
> Anyway thanks for this info. Any reason why a StatefulSnippet always has a
> dispatch function and
> a Stateless one, by default, has not?

The reason that I see ...
Stateless snippets are the most used artifacts to "attach" business
logic to your view. Because it is so common besides DispatchSnippet
trait, Lift loads and invoke Snippets functions using reflection.
Since discriminating at runtime between a stateless and a stateful
requires a trait (forget about annotations for now) well that trait is
StatefulSnippet.


>
> to avoid RequestVar-s but keep state for current rendering pipeline in
>
> > the snippet.
> > 2. You can indicate that you want to reuse the same instance across
> > multiple pages using link or redirectTo functions from the
> > StatefulSnippet
>
> > So depending what you want to doyou can use the statefull or stateless
> > nature of snippets. For stateless snippets you can just declare the
> > class and the method and just use it. Such as:
>
> > class Foo {
>
> >  def bar(xml: NodeSeq) :NodeSeq = ...
> > }
>
> > .. and in your markup
>
> > <lift:Foo.bar/>
>
> > you can also say
>
> > class Foo  extends DispatchSniuppet {
>
> >   def dispatch = ...
> > }
>
> > which is also a stateless snippet.
>
> > Br's,
> > Marius
>
> > On Apr 11, 7:21 am, Oliver Lambert <olambo...@gmail.com> wrote:
> > > I have a stateful snippet that doesn't always appear to work with the
> > back
> > > button.
> > > Sometimes, when the back button is used, a new stateful snippet instance
> > > appears to be created. Has this happened to anyone else?
>
> > > Anyway, I've converted what I had to use a SessionVar to store the state.
> > > Should I replace the stateful snippet with a stateless one - does a
> > stateful
> > > snippet that isn't storing any state have any extra overhead over a
> > > stateless one?
>
> > > If I do use a stateless snipet can I still have a dispatch method?
>
> > > cheers
> > > Oliver
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to