Package org.apache.velocity
Class Template
java.lang.Object
org.apache.velocity.runtime.resource.Resource
org.apache.velocity.Template
- All Implemented Interfaces:
Cloneable
This class is used for controlling all template
operations. This class uses a parser created
by JavaCC to create an AST that is subsequently
traversed by a Visitor.
// set up and initialize Velocity before this code block Template template = Velocity.getTemplate("test.wm"); Context context = new VelocityContext(); context.put("foo", "bar"); context.put("customer", new Customer()); template.merge(context, writer);
- Version:
- $Id$
- Author:
- Jason van Zyl, Geir Magnusson Jr.
-
Field Summary
Fields inherited from class org.apache.velocity.runtime.resource.Resource
data, encoding, lastModified, log, MILLIS_PER_SECOND, modificationCheckInterval, name, nextCheck, resourceLoader, rsvc, type
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Deep cloning of resource dataget the map of all macros defined by this templatevoid
initializes the document.void
The AST node structure is merged with the context to produce the final output.void
The AST node structure is merged with the context to produce the final output.boolean
process()
gets the named resource as a stream, parses and initsMethods inherited from class org.apache.velocity.runtime.resource.Resource
clone, getData, getEncoding, getLastModified, getName, getResourceLoader, getType, isSourceModified, requiresChecking, setData, setEncoding, setLastModified, setModificationCheckInterval, setName, setResourceLoader, setRuntimeServices, setType, touch
-
Constructor Details
-
Template
public Template()Default constructor
-
-
Method Details
-
getMacros
get the map of all macros defined by this template- Returns:
- macros map
-
process
gets the named resource as a stream, parses and inits- Specified by:
process
in classResource
- Returns:
- true if successful
- Throws:
ResourceNotFoundException
- if template not found from any available source.ParseErrorException
- if template cannot be parsed due to syntax (or other) error.
-
initDocument
initializes the document. init() is not longer dependant upon context, but we need to let the init() carry the template name down through for VM namespace features- Throws:
TemplateInitException
- When a problem occurs during the document initialization.
-
merge
public void merge(Context context, Writer writer) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException The AST node structure is merged with the context to produce the final output.- Parameters:
context
- Context with data elements accessed by templatewriter
- output writer for rendered template- Throws:
ResourceNotFoundException
- if template not found from any available source.ParseErrorException
- if template cannot be parsed due to syntax (or other) error.MethodInvocationException
- When a method on a referenced object in the context could not invoked.
-
merge
public void merge(Context context, Writer writer, List<String> macroLibraries) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException The AST node structure is merged with the context to produce the final output.- Parameters:
context
- Context with data elements accessed by templatewriter
- output writer for rendered templatemacroLibraries
- a list of template files containing macros to be used when merging- Throws:
ResourceNotFoundException
- if template not found from any available source.ParseErrorException
- if template cannot be parsed due to syntax (or other) error.MethodInvocationException
- When a method on a referenced object in the context could not invoked.- Since:
- 1.6
-
deepCloneData
Description copied from class:Resource
Deep cloning of resource data- Overrides:
deepCloneData
in classResource
- Throws:
CloneNotSupportedException
-