>what if in your example you needed 2 objects to be avaiable in your >Component? double push
>would a <ww:set> be needed? ??? Richard HALLIER Chef de projet [EMAIL PROTECTED] 01.40.12.41.52 www.uniclick.org UNICLICK -----Message d'origine----- De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] la part de Francisco Hernandez Envoye : mardi 18 novembre 2003 11:21 A : [EMAIL PROTECTED] Objet : Re: [OS-webwork] Param directive what if in your example you needed 2 objects to be avaiable in your Component? would a <ww:set> be needed? Fred Lamuette wrote: > Here is the different point of view. I personnaly think the push/pop actions > are NOT a hack. > Either you have a WW2 approach or a Velocity one. I think we are in the > first one, that makes all the difference, the stack is the main way to > access data. > If you need to pass reference objects without pushing on the stack, just use > velocity macros, it works perfectly. > And I'd like to point out that you can ALWAYS pass in any object references > via ognl (stack.findValue), you have just to push the needed object, in your > example : > > #foreach( $number in $person.phoneNumbers ) > $stack.push($number) > #bodytag(Component "template=numberDisplay.vm") > #param("phoneNumber" "top") -> actually, (behavior in the previous > release) you pass $stack.findValue("top") = $number. > #end > #set ($trash = $stack.pop()) > #end > > In your component numberDisplay.vm, you can use $parameters.phoneNumber as a > direct reference : > -------------------------------------------------------------------------- -- > ------------------ > > #set($phoneNumer = $parameters.phoneNumber ) > $phoneNumber.number > $phoneNumber.areaCode > ... > > My conclusion would be : > 1/ All you found impossible (pass in object references) is actually possible > via the stack. > 2/ I think it's important to keep the WebWork philosophy (data in a stack) > to not break the consistency. > 3/ Keep in mind, accessing the stack relies on ognl which is very very > powerfull (projection for instance). > > I hope I convince you to keep as a standard the data access via the stack. > > Richard HALLIER > Chef de projet > [EMAIL PROTECTED] > 01.40.12.41.52 > www.uniclick.org > UNICLICK > > -----Message d'origine----- > De : [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] la part de > Drew McAuliffe > Envoye : mardi 18 novembre 2003 00:15 > A : [EMAIL PROTECTED] > Objet : RE: [OS-webwork] Param directive > > > As I said in another reply, the biggest problem is that you can't use an > object variable in velocity, since it always gets converted to a string > first. If I have a collection of model objects, and want to call a component > tag with them in an iteration through the collection, I can't, because a > call to the component tag with the former behavior can only pass in the > reference to the model object, converted to a string. For example, for a > model object like > > PhoneNumber > -number > -area code > -number type > > the new behavior will allow for syntax like this: > #foreach ($number in $person.phoneNumbers) > #bodytag (Component "template=numberDisplay.vm") > #param("phoneNumber" $number) > #end > #end > > If you always call "stack.findValue()" behind the scenes, there's no way the > value stack can know the value of a velocity variable unless you manually > push it onto the stack, then pop it off. That's a hack to me, and is also > inconsistent with the way every other velocity directive or macro works > (directives and macros allow object references to be passed in, not just > strings). The new approach still allows for strings evaluation, but it > forces a manual call to $stack.findValue(). I think that's a fair tradeoff. > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Fred > Lamuette > Sent: Monday, November 17, 2003 9:16 AM > To: [EMAIL PROTECTED] > Subject: RE: [OS-webwork] Param directive > > As far as I am concerned this approach is not the correct one ! I explain my > point of view with an example : > > With the latest XWork+WW2 cvs snapshot, you can write a select tag both ways > : > > 1/ > > #tag(Select "name='nameValue'" ...) -> in this case, the parameter with > key=name and value=stack.findValue("nameValue") is added to the parameters > map. > > is equivalent to > > #bodytag(Select ) > #param("name" "nameValue") -> in this case, the parameter with > key=name and value=nameValue is added to the parameters map. > #end > > 2/ > > #tag(Select "name=nameValue" ...) > > is equivalent to > > #bodytag(Select ) > #param("name" "$stack.findValue($nameValue)") #end > > -------- > You can admit it's not very coherent, you have two different behaviors > according to what you use (extra tags or external params) whereas the same > handling behind is used (extra tags are converted as parameters). > > Can you explain to me what are your arguments ? > > Richard HALLIER > Chef de projet > [EMAIL PROTECTED] > 01.40.12.41.52 > www.uniclick.org > UNICLICK > > >>I believe some people asked for it to be that way as it's more natural >>for a Velocity context... I may be wrong though.. > > >>>-----Original Message----- >>>From: Fred Lamuette [mailto:[EMAIL PROTECTED] >>>Sent: Monday, November 17, 2003 9:34 AM >>>To: [EMAIL PROTECTED] >>>Subject: [OS-webwork] Param directive >>> >>> >>>Having the latest XWork+WW2 cvs snapshot, I can notice a behavior >>>change for the param directive. >>> >>>Before >>> #param("paramName" "paramValue") -> store in the parameters list, >>>the value >>>OgnlValueStack.findValue(paramValue) >>>From now >>> #param("paramName" "paramValue") -> store in the parameters list, >>>the value paramValue >>> >>>Why did you change the previous behavior ? >>> >>>Richard HALLIER >>>Chef de projet >>>[EMAIL PROTECTED] >>>01.40.12.41.52 >>>www.uniclick.org >>>UNICLICK >>> >>> >>> >>> >>>------------------------------------------------------- >>>This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, >>>easy and secure way to access your computer from any Web browser or >>>wireless device. Click here to Try it Free! >>>https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/ >> >>g22lp.tmpl > > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > > > ------------------------------------------------------- > This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and > secure way to access your computer from any Web browser or wireless device. > Click here to Try it Free! > https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=/g22lp.tmpl > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > > > > > > ------------------------------------------------------- > This SF. Net email is sponsored by: GoToMyPC > GoToMyPC is the fast, easy and secure way to access your computer from > any Web browser or wireless device. Click here to Try it Free! > https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > > > > ------------------------------------------------------- > This SF. Net email is sponsored by: GoToMyPC > GoToMyPC is the fast, easy and secure way to access your computer from > any Web browser or wireless device. Click here to Try it Free! > https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl > _______________________________________________ > Opensymphony-webwork mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork > > > ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork