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
Modifier and Type | Field and Description |
---|---|
private RuntimeMacro |
macro |
private java.lang.String |
name |
BLOCK, LINE
Constructor and Description |
---|
BlockMacro() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getName()
Return the name of this directive.
|
java.lang.String |
getScopeName()
Override to use the macro name, since it is within an
#@myMacro() ...
|
void |
init(RuntimeServices rs,
java.lang.String macroName,
InternalContextAdapter context,
Node node)
Initializes the directive.
|
boolean |
render(InternalContextAdapter context,
java.io.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
private java.lang.String name
private RuntimeMacro macro
public java.lang.String getName()
Directive
public java.lang.String getScopeName()
getScopeName
in class Directive
public void init(RuntimeServices rs, java.lang.String macroName, InternalContextAdapter context, Node node) throws TemplateInitException
rs
- macroName
- context
- node
- TemplateInitException
public boolean render(InternalContextAdapter context, java.io.Writer writer, Node node) throws java.io.IOException