That's when stuff starts to get REALLY ugly. Though I guess there's no sense
arguing about it now, since it looks like we get the best of both worlds. 

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Fred
Lamuette
Sent: Tuesday, November 18, 2003 2:56 AM
To: [EMAIL PROTECTED]
Subject: RE: [OS-webwork] Param directive

>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.tm
> pl _______________________________________________
> 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.tm
> pl _______________________________________________
> 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

Reply via email to