Last updatedDec 8, 2017

What's the easiest way to render a velocity template from Java code?

What's the easiest way to render a velocity template from Java code?

Use VelocityUtils. You will need to provide VelocityUtils with the name of the template you want to render, and a map of parameters that will be made available within the template as $variables in velocity.

Confluence has a default set of objects for Confluence velocity templates. These are required for most Confluence velocity macros to work properly. To obtain this context, you should call MacroUtils.defaultVelocityContext();.

1
2
3
4
5
6
// Create the Velocity Context
Map context = MacroUtils.defaultVelocityContext();
context.put("myCustomVar", customVar);
context.put("otherCustomVar", otherCustomVar);
// Render the Template
String result = VelocityUtils.getRenderedTemplate("/com/myplugin/templates/macro.vm", context);

Rendering Velocity templates in a macro
Creating a Wikipedia macro
Macro Plugins