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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidDeep cloning of resource dataget the map of all macros defined by this templatevoidinitializes the document.voidThe AST node structure is merged with the context to produce the final output.voidThe AST node structure is merged with the context to produce the final output.booleanprocess()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:
processin 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:ResourceDeep cloning of resource data- Overrides:
deepCloneDatain classResource- Throws:
CloneNotSupportedException
-