public class SimpleTemplateEngine
extends TemplateEngine
Processes template source files substituting variables and expressions into placeholders in a template source text to produce the desired output.
The template engine uses JSP style <% %> script and <%= %> expression syntax
or GString style expressions. The variable 'out' is bound to the writer that the template
is being written to.
Frequently, the template source will be in a file but here is a simple example providing the template as a string:
def binding = [
firstname : "Grace",
lastname : "Hopper",
accepted : true,
title : 'Groovy for COBOL programmers'
]
def engine = new groovy.text.SimpleTemplateEngine()
def text = '''\
Dear <%= firstname %> $lastname,
We <% if (accepted) print 'are pleased' else print 'regret' %> \
to inform you that your paper entitled
'$title' was ${ accepted ? 'accepted' : 'rejected' }.
The conference committee.
'''
def template = engine.createTemplate(text).make(binding)
println template.toString()
This example uses a mix of the JSP style and GString style placeholders
but you can typically use just one style if you wish. Running this
example will produce this output:
Dear Grace Hopper,
We are pleased to inform you that your paper entitled
'Groovy for COBOL programmers' was accepted.
The conference committee.
The template engine can also be used as the engine for groovy.servlet.TemplateServlet by placing the
following in your web.xml file (plus a corresponding servlet-mapping element):
<servlet>
<servlet-name>SimpleTemplate</servlet-name>
<servlet-class>groovy.servlet.TemplateServlet</servlet-class>
<init-param>
<param-name>template.engine</param-name>
<param-value>groovy.text.SimpleTemplateEngine</param-value>
</init-param>
</servlet>
In this case, your template source file should be HTML with the appropriate embedded placeholders.
| Constructor and description |
|---|
SimpleTemplateEngine()Creates an engine that parses template scripts with the default Groovy class loader. |
SimpleTemplateEngine(boolean verbose)Creates an engine with optional debug output enabled. |
SimpleTemplateEngine(ClassLoader parentLoader)Creates an engine that uses a GroovyShell built from the supplied parent loader. |
SimpleTemplateEngine(GroovyShell groovyShell)Creates an engine backed by the supplied GroovyShell. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public Template |
createTemplate(Reader reader)Compiles template source from the supplied reader. |
|
public boolean |
isEscapeBackslash()Indicates whether backslashes are escaped while parsing template source. |
|
public boolean |
isVerbose()Indicates whether generated template scripts are printed during compilation. |
|
public void |
setEscapeBackslash(boolean escapeBackslash)Controls whether backslashes in template source should be preserved using the legacy GROOVY-4585 behavior. |
|
public void |
setVerbose(boolean verbose)
|
| Methods inherited from class | Name |
|---|---|
class TemplateEngine |
createTemplate, createTemplate, createTemplate, createTemplate, createTemplate, createTemplate |
Creates an engine that parses template scripts with the default Groovy class loader.
Creates an engine with optional debug output enabled.
verbose - true to print generated script source while compiling templatesCreates an engine that uses a GroovyShell built from the supplied parent loader.
parentLoader - class loader used to compile generated template scriptsCreates an engine backed by the supplied GroovyShell.
groovyShell - shell used to compile generated template scriptsCompiles template source from the supplied reader.
reader - template sourceIndicates whether backslashes are escaped while parsing template source.
true if backslash escaping is enabledIndicates whether generated template scripts are printed during compilation.
true if debug output is enabledControls whether backslashes in template source should be preserved using the legacy GROOVY-4585 behavior.
escapeBackslash - true to escape backslashes while parsing the template
verbose - true if you want the engine to display the template source file for debugging purposesCopyright © 2003-2026 The Apache Software Foundation. All rights reserved.