I couldn't find my previous email on the SF list yet to keep this reply there, but I believe I understand now why the velocity directives act the way they do. In my post, I indicated that it would be easier to pass objects from the velocity context into bodytag params if you could do so without popping things onto the stack. For example, where this works now,
#foreach ($item in $myItems) $stack.push($item) #bodytag(Component template="mytemplate.vm") #param("param1" "$item") #end #set ($item = $stack.pop()) #end , the following would be preferable: #foreach ($item in $myItems) #bodytag(Component template="mytemplate.vm") #param("param1" $item) #end #end The difference is that in the second example, the reference to $item isn't quoted, and the value is passed into the velocity context for evaluation. I now understand why this doesn't work like that. In the ParamDirective.render method, the "value" portion is evaluated against the valueStack: if (stack != null) { value = stack.findValue(value.toString()); } So, even if you pass in just $item, without quotes, it will be converted to a string and its string contents evaluated against the value stack, then passed to the velocity context for rendering. I would suggest removing these lines in order to simplify the use of the #bodytag directive. By doing so, the simpler, more velocity-intuitive syntax I've shown would work. If you truly wanted to evaluate something against the valueStack, you could manually as follows: #foreach ($item in $myItems) #bodytag(Component template="mytemplate.vm") #param("param1" $stack.findValue($item)) #end #end Now, I'm not sure if this would break anything else, or if there is a better way to do this, or even if it would work (I'm checking on that now), but I thought I'd throw some more info out there. Thanks, Drew ------------------------------------------------------- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork