Re: What does "Velocimacro with a Body" mean?
Nathan Bubna <[email protected]> Mon, 5 Aug 2013 20:34:16 -0700
| Newsgroups | gmane.comp.jakarta.velocity.user |
|---|---|
| Message-ID | <CAFyaDjHs17pp3bUM5ntD78LULj38OAYgKd4W84RQ+VN6Y22a2Q@mail.gmail.com> |
Yes, all velocimacros have bodies in their definition: #macro( foo ) definition only #end #macro( bar ) definition accepts $bodyContent #end Not all velocimacros accept bodies in their usage: #foo() #@bar() body content when used #end Produces: definition only definition accepts body content when used As to why your example ends up with preceding spaces, i am not certain. The "format" part in particular, because Velocity has only input text and output text, no "format". Try defining your #@trim like so: #macro( trim )$!bodyContent.trim()#end to ensure there are no sneaky whitespaces hiding in the definition. On Mon, Aug 5, 2013 at 9:25 AM, O. Olson <[email protected]> wrote: > Hi, > > I am new to > Velocity and I am wondering what "Velocimacro with a Body" means? > Here, I am referring to the description in http://velocity.apache.org/engine/releases/velocity-1.7/vtl-reference-guide.html#amacro_-_Allows_users_to_define_a_Velocimacro_VM_a_repeated_segment_of_a_VTL_template_as_required > > I thought > all Velocimacros had bodies, just like all non-trivial functions in C or Java > have bodies. I attempted the use the above suggestion given in the URL and it did not > work. > > I attempted the following in my Global Library: > > #macro(query_url $query_param) > q=$query_param > #end > > #macro(trim) > $!bodyContent.trim() > #end > > According to the above URL, in my template, I called this > using: > > #@trim()#query_url("sometext")#end > > > The result seems to be: > q=sometext > > i.e. there are spaces in the front that I don't like. > (Depending on the format you are looking at, these preceeding spaces might be > deleted, but they appear in the rendered results.) Any ideas what I am doing > wrong? > > Thank you in advance, > O. O. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] >