[Lift] Re: Snippets and Requests

2009-06-07 Thread marius d.

StatfulSnippet does not actually have session scope. It guarantees
that for the same request you get the same snippet instance. If for
some reason you still don't want a StatefulSnippet you can put your
results in a RequestVar, set the value when you process the form and
use it when render the page in binds.

Br's,
Marius

On Jun 6, 11:14 pm, Lance Walton lance.c.wal...@googlemail.com
wrote:
 Hi.

 From my various readings, I believed that a single instance of a
 snippet will be used for a particular request. I am trying to make use
 of this in order to implement a search feature in my app. So I have a
 template that looks like this:

 lift:surround with=default at=content
   h1Search/h1
   lift:SearchSnippet.nameSearch form=POST
     Name:nbsp;search:name/nbsp;nbsp;search:submit/
   /lift:SearchSnippet.nameSearch

   h1Results/h1
   divlift:SearchSnippet.searchResultsfires:list
     divresult:name//div
   /fires:list/lift:SearchSnippet.searchResults/div
 /lift:surround

 And my snippet looks like this:

 class SearchSnippet {
   var results : List[Result] = List()

   def nameSearch(xhtml : NodeSeq) : NodeSeq = {
     var name = 

     def process() {
       results = ... some stuff to get the results ...
     }

     bind(search, xhtml,
          name - SHtml.text(name, name = _),
          submit - SHtml.submit(Search, process))
   }

   def searchResults(xhtml : NodeSeq) : NodeSeq =
     results.flatMap(f = bindResult(f)(chooseTemplate(results,
 list, xhtml)))

   def bindResult(result : Result)(xhtml : NodeSeq) =
     bind(result, xhtml,
       name - result.name)

 }

 What I expected is that when the form is submitted, an instance of
 SearchSnippet will be created and 'results' will be populated. Then,
 when the results sectionof the template is processed, the
 'searchResults' method can bind the results. However, I never see any
 results, and a bit of debugging suggests that different instances are
 in play. Is this as expected?

 I don't think I want a StatefulSnippet because that seems to have
 session 'scope'.

 What to do?

 Regards,

 Lance
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[Lift] Re: Snippets and Requests

2009-06-07 Thread Lance Walton

Thankyou, I'll do that then.

Regards,

Lance

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---