Lance,

this is the kind of fun that happens with Velocity all day long...

In general, when it outputs the variable name, it's the that the variable is 
null; this can happen when a method is missing for example.... 
There are actually effective uses of this brain-dead-debugger-oriented-practice!

I would suppose that the class of your $sentence is not something that has a 
get(String) method.
With a normal debugging, this should be shown in a console.
This is strengthened by the fact that your output of $sentence is not exactly 
the same as a the output of  java.util.HashMap for example.

When in this situation, I generally make
   Raw data: $sentence of class $sentence.getClass()
(note: class is not a bean property, you need the method call)

Hope it helps.

Paul

PS: to stop this hell, I have a JSP pendant to the VelocityResponseWriter, is 
this something of interest for someone so that I contribute it?



Le 9 oct. 2012 à 04:39, Lance Norskog a écrit :

> I am adding something to Solaritas, under /browse. One bit of Velocity
> code does not unpack the result structure the way I think it should.
> Please look at this- there is something I am missing about
> tree-walking.
> 
> Here is the XML from a search result:
> <lst name="outer">
>  <lst name="sentence">
>    <int name="index">0</int>
>    <str name="text">
>    A bunch of words
>    </str>
>  </lst>
> more sentences ....
> </lst>
> 
> Here is my Velocity code:
> #foreach($sentence in $outer)
>    Raw data: $sentence
>    <br/>
>    #set($index = $sentence.get('index'))
>    #set($text = $sentence.get('text'))
>    <div class="text">
>      Index: $index
>      <br/>
>      Text: $text
>      <br/>
>    </div>
> #end
> 
> Here is the output:
> 
>    Raw data: sentence={index=0,text= A bunch of words}
>    Index: $index
>    Text: $text

Reply via email to