RE: is it possible to maintain a foreach directive after a VelocityEngine.evaluate()?
"John McNair" <[email protected]>
| Newsgroups | gmane.comp.jakarta.velocity.user |
|---|---|
| Message-ID | <1e8001cd2704$b881f710$2985e530$@com> |
I'm not above faking it :) -----Original Message----- From: Nathan Bubna [mailto:[email protected]] Sent: Monday, April 30, 2012 3:06 PM To: Velocity Users List; [email protected] Subject: Re: is it possible to maintain a foreach directive after a VelocityEngine.evaluate()? No, i don't think there's a way to do that automatically without customizing your velocity build. But you can fake it: #set( $h = '#') #set( $d = '$' ) #foreach( $element in $object1.elements ) #end #if( !$object1 ) ${h}foreach( ${d}element in $object1.elements ) ${h}end #end On Mon, Apr 30, 2012 at 11:44 AM, John McNair <[email protected]> wrote: > Hi, > > > > I have an oddball case where I need a multi-stage Velocity template > evaluation. That is, image a pipelined process where: > > > > - Task one grabs a Velocity template, adds some (but not all) > items to the Context, evaluates, and sends the partially resolved > output as input to task two > > - Task two adds some (but not all) items to the Context, evaluates. > > > > I know I can have variables like ${object1.member1} that will be > preserved in the output after evaluate() if object1 is not resolved, > however, is it possible to maintain a foreach directive after an evaluation: > > > > ## preserve this 'foreach' in the output if object1 is not resolved > > #foreach( $element in $object1.elements ) > > #end > > > > Thanks in advance, > > John >