Geir,

On the Java side, I have an set of Resource objects each of which has a
method getPrice() returning a float.   (I mistakenly said it was an Integer,
below.)  I then populate a 'bundle' vector with one Resource object and
another different object.  I then collect all these 'bundle' vectors into an
'rdata' vector.

On the template side, I use $rdata to extract the the 'rdata' vector and
then use #foreach to remove each 'bundle' vector as $entry.  The first
element of $entry is the Resource object ($entry.elementAt(0)); I then use
$entry.elementAt(0).Price to retrieve the price.  So, the actual object is a
Float(), not a String().

However, as I understand it, $entry.elementAt(0).Price returns a string.  If
that is correct, then $int.valueOf($entry.elementAt(0).Price) should (??)
return an int (that can be used in computation).

But it doesn't work.  I'm sure I'm missing something, probably very obvious.
But I don't know what it is.

Regards,

Terry

PS:  I'm assuming that $int is a built-in Integer object (available in the
VelocityContext, per the documentation)?  If that's not so (meaning it's not
built-in and I have to insert it), perhaps that's my problem?


----- Original Message -----
From: "Geir Magnusson Jr." <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, October 12, 2001 9:14 PM
Subject: Re: Continuing VTL Problems


> On 10/12/01 8:18 PM, "Terry Steichen" <[EMAIL PROTECTED]> wrote:
>
> > I'm still having some problems with converting variables to integers so
I can
> > perform operations on/with them.  (I've got some complex displays.)  In
this
> > particular case, my Java code is doing a context.put() of a vector of
vectors,
> > each of which holds several objects, one of which is an Integer object.
The
> > reference (at the VTL level, inside the #foreach($entry in $entries)
> > directive) is $entry.elementAt(0).Price.  It displays fine, but if I try
to do
> > any operations on it (adding, multiplying, etc.), the result is (apparen
tly)
> > null.  I've tried $int.valueOf($entry.elementAt(0).Price), but that has
the
> > same outcome.  I've gone over both the user and dev docs again and find
only a
> > mention that you must use integers.
> >
> > In other words, in the template:
> >
> > #set($charge = 1 * $int.valueOf($entry.elementAt(0).Price)) does *not*
work.
> > #set($charge = $int.valueOf($entry.elementAt(0).Price)) does *not* work
> > #set($charge = $entry.elementAt(0).Price) works, in the sense that it's
value
> > is not null.
> >
>
> I am going to assume that $entry.elementAt(0).Price is supposed to be a
> java.lang.String and $int is a java.lang.Integer.
>
> I suspect that Price isn't, as the line
>
>  #set($charge = $int.valueOf($entry.elementAt(0).Price))
>
> Appears at first glance to be perfectly valid.
>
> What does the velocity.log say - there should be something in there...
>
> > Please give me some idea of how to handle this stuff without introducing
too
> > much logic into the template and I'll be happy to write it up for
others.
>
> I don't think that's the issue...
>
> > Regards,
> >
> > Terry
> >
> > PS: Someone suggested my earlier question would better fit into the
users'
> > (rather than developers') group.  I'm staying with the developer's list
> > because these questions seem to be deeper than template editing (but
> > admittedly more specific and pragmatic than deep 'inner guts' stuff).
> >
>
> So far, this is perfectly acceptable stuff for -user.
>
> Geir
>
> --
> Geir Magnusson Jr.     [EMAIL PROTECTED]
> System and Software Consulting
> "Whoever would overthrow the liberty of a nation must begin by subduing
the
> freeness of speech." - Benjamin Franklin
>
>
>

Reply via email to