public class BlockMacro extends Block
The macro can then refer to the passed body AST. This directive can be used as a "decorator". Body AST can contain any valid Velocity syntax. An example:
#set($foobar = "yeah!") #macro(strong $txt) <strong>$bodyContent</strong> $txt #end #@strong($foobar) <u>This text is underlined and bold</u> #endWill print:
<strong><u>This text is underlined and bold<u></strong> yeah!bodyContent reference name is configurable (see velocity.properties).
Block.ReferenceBLOCK, LINE| Constructor and Description |
|---|
BlockMacro() |
| Modifier and Type | Method and Description |
|---|---|
String |
getName()
Return the name of this directive.
|
String |
getScopeName()
Override to use the macro name, since it is within an
#@myMacro() ...
|
void |
init(RuntimeServices rs,
String macroName,
InternalContextAdapter context,
Node node)
Initializes the directive.
|
boolean |
render(InternalContextAdapter context,
Writer writer,
Node node)
Renders content using the selected macro and the passed AST body.
|
checkArgs, getColumn, getLine, getTemplate, getTemplateName, isScopeProvided, makeScope, postRender, preRender, setLocation, setLocationpublic String getName()
Directivepublic String getScopeName()
getScopeName in class Directivepublic void init(RuntimeServices rs, String macroName, InternalContextAdapter context, Node node) throws TemplateInitException
rs - macroName - context - node - TemplateInitExceptionpublic boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException
render in class Directivecontext - writer - node - IOExceptionCopyright © 2000–2020 The Apache Software Foundation. All rights reserved.