org.apache.velocity.runtime.directive
Class BlockMacro
java.lang.Object
org.apache.velocity.runtime.directive.Directive
org.apache.velocity.runtime.directive.Block
org.apache.velocity.runtime.directive.BlockMacro
- All Implemented Interfaces:
- Cloneable, DirectiveConstants
public class BlockMacro
- extends Block
BlockMacro directive is used to invoke Velocity macros with normal parameters and a macro body.
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>
#end
Will print:
<strong><u>This text is underlined and bold<u></strong> yeah!
bodyContent reference name is configurable (see velocity.properties).
- Since:
- 1.7
- Version:
- $Id$
- Author:
- Jarkko Viinamaki
Nested classes/interfaces inherited from class org.apache.velocity.runtime.directive.Block |
Block.Reference |
Fields inherited from class org.apache.velocity.runtime.directive.Directive |
rsvc |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BlockMacro
public BlockMacro(String name)
getName
public String getName()
- Description copied from class:
Directive
- Return the name of this directive.
- Specified by:
getName
in class Directive
- Returns:
- The name of this directive.
getScopeName
public String getScopeName()
- Override to use the macro name, since it is within an
#@myMacro() ... #end block that the scope in question
would be used.
- Overrides:
getScopeName
in class Directive
init
public void init(RuntimeServices rs,
InternalContextAdapter context,
Node node)
throws TemplateInitException
- Initializes the directive.
- Overrides:
init
in class Block
- Parameters:
rs
- context
- node
-
- Throws:
TemplateInitException
render
public boolean render(InternalContextAdapter context,
Writer writer,
Node node)
throws IOException
- Renders content using the selected macro and the passed AST body.
- Specified by:
render
in class Directive
- Parameters:
context
- writer
- node
-
- Returns:
- True if the directive rendered successfully.
- Throws:
IOException
Copyright © 2000-2010 The Apache Software Foundation. All Rights Reserved.