commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <>
Subject Re: [jelly] velocity->jelly mapping for #set
Date Sat, 07 Dec 2002 11:43:57 GMT
Hi Kelvin

You're understanding is correct. Both

<j:set var="foo" value="1"/>


<j:set var="foo" value="${1}"/>


<j:set var="foo">1</j:set>

should all work.

Bear in mind though that there is currently a bug in Jexl with
${foo.size()}. Right now the following works ${size(foo)} - hopefully this
bug in Jexl will get fixed soon.

To see the <j:set> tag in action you could take a look at the JellyUnit test

----- Original Message -----
From: <>
To: <>
Sent: Friday, December 06, 2002 3:53 AM
Subject: [jelly] velocity->jelly mapping for #set

I'm trying to figure out how the #set velocity directive maps to a
jelly expression.

In Velocity, we're accustomed to using in our templates

Example 1
#set ($foo = 1)
${foo} (formal notation)


Example 2
${foo.size()} ## $foo is a vector placed into the context

Looking at the core taglibs, I tried Ex 1 using

<j:set var="foo" value="1"/>, <j:set var="foo" value="${1}"/> with no
<j:set var="foo">1</j:set>
worked for me. Looking at the taglib doc, it says that the value attr
accepts an Expression. Is there any shorthand for this, other than
wrapping them in tags every single time? It's a pretty big difference

#set ($foo = 1)
<j:set var="foo">1</j:set>

For Ex 2, I believe ${foo.size()} doesn't work coz it returns a
primitive. Is there any easy workaround?

For Ex 3, trying
<j:set var="foo" value="${bar.class}"/> or <j:set var="foo"
value="${bar.getClass()}"/> (aren't these Expressions?), and again
encapsulating the ${bar.class} within the <j:set> tags worked.

Just trying to make sure I understand how stuff is supposed to be



To unsubscribe, e-mail:
For additional commands, e-mail:

Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts

View raw message