Well if you logically expected it to be read but it wasn't, it might indicate a bug to you or help in diagnosis.
I'm not sure I understand your reply fully -- when you added myId.is did the log message go away? If not, could you post your code? -Ross On Dec 7, 2009, at 9:39 PM, Xuefeng Wu wrote: > I use myId.is but get nothing. > I don't know what I could do with the information. > > On Tue, Dec 8, 2009 at 10:19 AM, Ross Mellgren <dri...@gmail.com> wrote: > I think that message is just informative, letting you know that you don't > seem to be using the request var fully (perhaps due to typo, or code > refactoring that made it unused, or something.) > > I think it'll go away if you access the variable somewhere using myId.is. > > -Ross > > On Dec 7, 2009, at 9:02 PM, Xuefeng Wu wrote: > >> Hi , >> >> When I use RequestVar get the message: RequestVar ....... was set but not >> read >> >> My code like this: >> object MyMgr { >> ... >> Loc.Snippet("myFoo",myFoo) >> ... >> object myId extends RequestVar[Long](0) >> >> def myFoo(xhtml: NodeSeq): NodeSeq = { >> .... >> def selectNode = { >> >> myId .set(vId) >> >> } >> .... >> bind("",xhtml, >> "node"->a(() => selectNode, Text(nodeName)) >> ) >> } >> >> } >> >> the RequestVar must be used at Class? >> >> On Sat, Nov 21, 2009 at 12:09 AM, Ross Mellgren <dri...@gmail.com> wrote: >> RequestVar is the standard way of doing this. For example >> >> object MySharedInformation { >> object myData extends RequestVar[List[Thing]](loadThings) >> // ^^^^^^^^^^^ ^^^^^^^^^^ >> // Type of thing to store How to initialize >> variable first time it's accessed >> >> private def loadThings: List[Thing] = ... >> } >> >> class Snippet1 { >> import MySharedInformation.myData >> def render(ns: NodeSeq): NodeSeq = { >> myData.is.map(thing => { ... }) >> } >> } >> >> class Snippet2 { >> import MySharedInformation.myData >> ... >> } >> >> The lifetime of the value is during the current request processing and >> any AJAX calls related to it. >> >> If you really want to initialize it in a snippet, then use a Box with >> a RequestVar, like this: >> >> object MySharedInformation { >> object myData extends RequestVar[Box[List[Thing]]](Empty) >> } >> >> class LoaderSnippet { >> import MySharedInformation.myData >> def render(ns: NodeSeq): NodeSeq = { >> myData.set(Full(...)) >> } >> } >> >> class ReaderSnippet { >> import MySharedInformation.myData >> def render(ns: NodeSeq): NodeSeq = { >> // If the data has not been loaded, default to an empty list >> val data = myData.is.openOr(Nil) >> ... >> } >> } >> >> class OtherReaderSnippet { >> import MySharedInformation.myData >> def render(ns: NodeSeq): NodeSeq = { >> // Do two entirely different things if the data has versus >> has not been loaded >> myData.is match { >> case Full(data) => // do something when the data has been >> loaded >> case _ => // do something when the data has not been loaded >> } >> } >> } >> >> HTH, >> -Ross >> >> >> On Nov 20, 2009, at 10:59 AM, Alex Black wrote: >> >> > I've got a template page, say foobar.html, that makes a number of >> > calls to functions in a snippet, e.g. mysnippet.foo1, mysnippet.foo2, >> > mysnippet.foo3. >> > >> > I'd like to do some initial work in foo1, e.g. retrieve some data and >> > do some work on it, then in foo2 and foo3 display parts of that data. >> > >> > Whats the easiest way to do this? I think I misunderstood the lift >> > book: >> > >> > "That means that for each request, Lift creates a new instance of the >> > snippet class to execute. Any changes you make to instance variables >> > will be discarded after the request is processed." >> > >> > I thought this meant that for a given HTTP request, there would be one >> > (and only one) instance of my snippet, so I could call several of its >> > methods and they could all access the snippet's member variables, >> > which would then be discarded at the end of the request. >> > >> > Am I going about this wrong? should I only have one snippet function >> > per template? >> > >> > Thx >> > >> > - Alex >> > >> > -- >> > >> > You received this message because you are subscribed to the Google >> > Groups "Lift" group. >> > To post to this group, send email to lift...@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= >> > . >> > >> > >> >> -- >> >> You received this message because you are subscribed to the Google Groups >> "Lift" group. >> To post to this group, send email to lift...@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=. >> >> >> >> >> >> -- >> Scala中文社区: http://groups.google.com/group/scalacn >> >> -- >> >> You received this message because you are subscribed to the Google Groups >> "Lift" group. >> To post to this group, send email to lift...@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. > > > -- > > You received this message because you are subscribed to the Google Groups > "Lift" group. > To post to this group, send email to lift...@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. > > > > -- > Scala中文社区: http://groups.google.com/group/scalacn > > -- > > You received this message because you are subscribed to the Google Groups > "Lift" group. > To post to this group, send email to lift...@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. -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@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.