Re: is it possible to maintain a foreach directive after a VelocityEngine.evaluate()?

Nathan Bubna <[email protected]>
Newsgroups gmane.comp.jakarta.velocity.user
Message-ID <CAFyaDjHfo-FqWmif_P+u6EhxM6JmN=X-3V3u7f+dsyjpeB4ipQ@mail.gmail.com>
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
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.