On Sun, Apr 12, 2009 at 3:49 PM, marius d. <marius.dan...@gmail.com> wrote:
> > 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. > It can be used, but doesn't always give the same instance when the back button is used? Therefore, all my fields are reset to null. Is this the expected functionality, or a bug (my code or Lift's)? I am using Stateful link and redirect and the application works fine, apart from the back button. > > > 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 -~----------~----~----~----~------~----~------~--~---