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.Reference
BLOCK, 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, setLocation
public String getName()
Directive
public String getScopeName()
getScopeName
in class Directive
public void init(RuntimeServices rs, String macroName, InternalContextAdapter context, Node node) throws TemplateInitException
rs
- macroName
- context
- node
- TemplateInitException
public boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException
render
in class Directive
context
- writer
- node
- IOException
Copyright © 2000–2021 The Apache Software Foundation. All rights reserved.