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.


Reply via email to