blob: 8a70e7d020f2fbb8be33033a8da12b9dfe4f12ef [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_281) on Sun Jan 15 15:58:35 CET 2023 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Template (FreeMarker 2.3.32 API)</title>
<meta name="date" content="2023-01-15">
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Template (FreeMarker 2.3.32 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":42,"i1":42,"i2":42,"i3":42,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":42,"i16":10,"i17":42,"i18":10,"i19":10,"i20":10,"i21":10,"i22":9,"i23":9,"i24":10,"i25":10,"i26":42,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":42,"i34":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Template.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/template/Template.WrongEncodingException.html" title="class in freemarker.template"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/template/Template.html" target="_top">Frames</a></li>
<li><a href="Template.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">freemarker.template</div>
<h2 title="Class Template" class="title">Class Template</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">freemarker.core.Configurable</a></li>
<li>
<ul class="inheritance">
<li>freemarker.template.Template</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">Template</span>
extends <a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></pre>
<div class="block">Stores an already parsed template, ready to be processed (rendered) for unlimited times, possibly from multiple
threads.
<p>
Typically, you will use <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>Configuration.getTemplate(String)</code></a> to create/get <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> objects, so you
don't construct them directly. But you can also construct a template from a <code>Reader</code> or a <code>String</code> that
contains the template source code. But then it's important to know that while the resulting <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> is
efficient for later processing, creating a new <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> itself is relatively expensive. So try to re-use
<a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> objects if possible. <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>Configuration.getTemplate(String)</code></a> (and its overloads) does that
(caching <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a>-s) for you, but the constructor of course doesn't, so it's up to you to solve then.
<p>
Objects of this class meant to be handled as immutable and thus thread-safe. However, it has some setter methods for
changing FreeMarker settings. Those must not be used while the template is being processed, or if the template object
is already accessible from multiple threads. If some templates need different settings that those coming from the
shared <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>, and you are using <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>Configuration.getTemplate(String)</code></a> (or its overloads), then
use <a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>Configuration.setTemplateConfigurations(freemarker.cache.TemplateConfigurationFactory)</code></a> to achieve that.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.WrongEncodingException.html" title="class in freemarker.template">Template.WrongEncodingException</a></span></code>
<div class="block">Thrown by the <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> constructors that specify a non-<code>null</code> encoding whoch doesn't match the
encoding specified in the <code>#ftl</code> header of the template.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.freemarker.core.Configurable">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;freemarker.core.<a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></h3>
<code><a href="../../freemarker/core/Configurable.SettingValueAssignmentException.html" title="class in freemarker.core">Configurable.SettingValueAssignmentException</a>, <a href="../../freemarker/core/Configurable.UnknownSettingException.html" title="class in freemarker.core">Configurable.UnknownSettingException</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#DEFAULT_NAMESPACE_PREFIX">DEFAULT_NAMESPACE_PREFIX</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#NO_NS_PREFIX">NO_NS_PREFIX</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.freemarker.core.Configurable">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;freemarker.core.<a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></h3>
<code><a href="../../freemarker/core/Configurable.html#API_BUILTIN_ENABLED_KEY">API_BUILTIN_ENABLED_KEY</a>, <a href="../../freemarker/core/Configurable.html#API_BUILTIN_ENABLED_KEY_CAMEL_CASE">API_BUILTIN_ENABLED_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#API_BUILTIN_ENABLED_KEY_SNAKE_CASE">API_BUILTIN_ENABLED_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#ARITHMETIC_ENGINE_KEY">ARITHMETIC_ENGINE_KEY</a>, <a href="../../freemarker/core/Configurable.html#ARITHMETIC_ENGINE_KEY_CAMEL_CASE">ARITHMETIC_ENGINE_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#ARITHMETIC_ENGINE_KEY_SNAKE_CASE">ARITHMETIC_ENGINE_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#ATTEMPT_EXCEPTION_REPORTER_KEY">ATTEMPT_EXCEPTION_REPORTER_KEY</a>, <a href="../../freemarker/core/Configurable.html#ATTEMPT_EXCEPTION_REPORTER_KEY_CAMEL_CASE">ATTEMPT_EXCEPTION_REPORTER_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#ATTEMPT_EXCEPTION_REPORTER_KEY_SNAKE_CASE">ATTEMPT_EXCEPTION_REPORTER_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#AUTO_FLUSH_KEY">AUTO_FLUSH_KEY</a>, <a href="../../freemarker/core/Configurable.html#AUTO_FLUSH_KEY_CAMEL_CASE">AUTO_FLUSH_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#AUTO_FLUSH_KEY_SNAKE_CASE">AUTO_FLUSH_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY">AUTO_IMPORT_KEY</a>, <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_CAMEL_CASE">AUTO_IMPORT_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_SNAKE_CASE">AUTO_IMPORT_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#AUTO_INCLUDE_KEY">AUTO_INCLUDE_KEY</a>, <a href="../../freemarker/core/Configurable.html#AUTO_INCLUDE_KEY_CAMEL_CASE">AUTO_INCLUDE_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#AUTO_INCLUDE_KEY_SNAKE_CASE">AUTO_INCLUDE_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#BOOLEAN_FORMAT_KEY">BOOLEAN_FORMAT_KEY</a>, <a href="../../freemarker/core/Configurable.html#BOOLEAN_FORMAT_KEY_CAMEL_CASE">BOOLEAN_FORMAT_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#BOOLEAN_FORMAT_KEY_SNAKE_CASE">BOOLEAN_FORMAT_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#C_FORMAT_KEY">C_FORMAT_KEY</a>, <a href="../../freemarker/core/Configurable.html#C_FORMAT_KEY_CAMEL_CASE">C_FORMAT_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#C_FORMAT_KEY_SNAKE_CASE">C_FORMAT_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#CLASSIC_COMPATIBLE_KEY">CLASSIC_COMPATIBLE_KEY</a>, <a href="../../freemarker/core/Configurable.html#CLASSIC_COMPATIBLE_KEY_CAMEL_CASE">CLASSIC_COMPATIBLE_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#CLASSIC_COMPATIBLE_KEY_SNAKE_CASE">CLASSIC_COMPATIBLE_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#CUSTOM_DATE_FORMATS_KEY">CUSTOM_DATE_FORMATS_KEY</a>, <a href="../../freemarker/core/Configurable.html#CUSTOM_DATE_FORMATS_KEY_CAMEL_CASE">CUSTOM_DATE_FORMATS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#CUSTOM_DATE_FORMATS_KEY_SNAKE_CASE">CUSTOM_DATE_FORMATS_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#CUSTOM_NUMBER_FORMATS_KEY">CUSTOM_NUMBER_FORMATS_KEY</a>, <a href="../../freemarker/core/Configurable.html#CUSTOM_NUMBER_FORMATS_KEY_CAMEL_CASE">CUSTOM_NUMBER_FORMATS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#CUSTOM_NUMBER_FORMATS_KEY_SNAKE_CASE">CUSTOM_NUMBER_FORMATS_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#DATE_FORMAT_KEY">DATE_FORMAT_KEY</a>, <a href="../../freemarker/core/Configurable.html#DATE_FORMAT_KEY_CAMEL_CASE">DATE_FORMAT_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#DATE_FORMAT_KEY_SNAKE_CASE">DATE_FORMAT_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#DATETIME_FORMAT_KEY">DATETIME_FORMAT_KEY</a>, <a href="../../freemarker/core/Configurable.html#DATETIME_FORMAT_KEY_CAMEL_CASE">DATETIME_FORMAT_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#DATETIME_FORMAT_KEY_SNAKE_CASE">DATETIME_FORMAT_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#LAZY_AUTO_IMPORTS_KEY">LAZY_AUTO_IMPORTS_KEY</a>, <a href="../../freemarker/core/Configurable.html#LAZY_AUTO_IMPORTS_KEY_CAMEL_CASE">LAZY_AUTO_IMPORTS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#LAZY_AUTO_IMPORTS_KEY_SNAKE_CASE">LAZY_AUTO_IMPORTS_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#LAZY_IMPORTS_KEY">LAZY_IMPORTS_KEY</a>, <a href="../../freemarker/core/Configurable.html#LAZY_IMPORTS_KEY_CAMEL_CASE">LAZY_IMPORTS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#LAZY_IMPORTS_KEY_SNAKE_CASE">LAZY_IMPORTS_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#LOCALE_KEY">LOCALE_KEY</a>, <a href="../../freemarker/core/Configurable.html#LOCALE_KEY_CAMEL_CASE">LOCALE_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#LOCALE_KEY_SNAKE_CASE">LOCALE_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#LOG_TEMPLATE_EXCEPTIONS_KEY">LOG_TEMPLATE_EXCEPTIONS_KEY</a>, <a href="../../freemarker/core/Configurable.html#LOG_TEMPLATE_EXCEPTIONS_KEY_CAMEL_CASE">LOG_TEMPLATE_EXCEPTIONS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#LOG_TEMPLATE_EXCEPTIONS_KEY_SNAKE_CASE">LOG_TEMPLATE_EXCEPTIONS_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#NEW_BUILTIN_CLASS_RESOLVER_KEY">NEW_BUILTIN_CLASS_RESOLVER_KEY</a>, <a href="../../freemarker/core/Configurable.html#NEW_BUILTIN_CLASS_RESOLVER_KEY_CAMEL_CASE">NEW_BUILTIN_CLASS_RESOLVER_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#NEW_BUILTIN_CLASS_RESOLVER_KEY_SNAKE_CASE">NEW_BUILTIN_CLASS_RESOLVER_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#NUMBER_FORMAT_KEY">NUMBER_FORMAT_KEY</a>, <a href="../../freemarker/core/Configurable.html#NUMBER_FORMAT_KEY_CAMEL_CASE">NUMBER_FORMAT_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#NUMBER_FORMAT_KEY_SNAKE_CASE">NUMBER_FORMAT_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#OBJECT_WRAPPER_KEY">OBJECT_WRAPPER_KEY</a>, <a href="../../freemarker/core/Configurable.html#OBJECT_WRAPPER_KEY_CAMEL_CASE">OBJECT_WRAPPER_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#OBJECT_WRAPPER_KEY_SNAKE_CASE">OBJECT_WRAPPER_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#OUTPUT_ENCODING_KEY">OUTPUT_ENCODING_KEY</a>, <a href="../../freemarker/core/Configurable.html#OUTPUT_ENCODING_KEY_CAMEL_CASE">OUTPUT_ENCODING_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#OUTPUT_ENCODING_KEY_SNAKE_CASE">OUTPUT_ENCODING_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#SHOW_ERROR_TIPS_KEY">SHOW_ERROR_TIPS_KEY</a>, <a href="../../freemarker/core/Configurable.html#SHOW_ERROR_TIPS_KEY_CAMEL_CASE">SHOW_ERROR_TIPS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#SHOW_ERROR_TIPS_KEY_SNAKE_CASE">SHOW_ERROR_TIPS_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#SQL_DATE_AND_TIME_TIME_ZONE_KEY">SQL_DATE_AND_TIME_TIME_ZONE_KEY</a>, <a href="../../freemarker/core/Configurable.html#SQL_DATE_AND_TIME_TIME_ZONE_KEY_CAMEL_CASE">SQL_DATE_AND_TIME_TIME_ZONE_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#SQL_DATE_AND_TIME_TIME_ZONE_KEY_SNAKE_CASE">SQL_DATE_AND_TIME_TIME_ZONE_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#STRICT_BEAN_MODELS">STRICT_BEAN_MODELS</a>, <a href="../../freemarker/core/Configurable.html#STRICT_BEAN_MODELS_KEY">STRICT_BEAN_MODELS_KEY</a>, <a href="../../freemarker/core/Configurable.html#STRICT_BEAN_MODELS_KEY_CAMEL_CASE">STRICT_BEAN_MODELS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#STRICT_BEAN_MODELS_KEY_SNAKE_CASE">STRICT_BEAN_MODELS_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#TEMPLATE_EXCEPTION_HANDLER_KEY">TEMPLATE_EXCEPTION_HANDLER_KEY</a>, <a href="../../freemarker/core/Configurable.html#TEMPLATE_EXCEPTION_HANDLER_KEY_CAMEL_CASE">TEMPLATE_EXCEPTION_HANDLER_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#TEMPLATE_EXCEPTION_HANDLER_KEY_SNAKE_CASE">TEMPLATE_EXCEPTION_HANDLER_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#TIME_FORMAT_KEY">TIME_FORMAT_KEY</a>, <a href="../../freemarker/core/Configurable.html#TIME_FORMAT_KEY_CAMEL_CASE">TIME_FORMAT_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#TIME_FORMAT_KEY_SNAKE_CASE">TIME_FORMAT_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#TIME_ZONE_KEY">TIME_ZONE_KEY</a>, <a href="../../freemarker/core/Configurable.html#TIME_ZONE_KEY_CAMEL_CASE">TIME_ZONE_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#TIME_ZONE_KEY_SNAKE_CASE">TIME_ZONE_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#TRUNCATE_BUILTIN_ALGORITHM_KEY">TRUNCATE_BUILTIN_ALGORITHM_KEY</a>, <a href="../../freemarker/core/Configurable.html#TRUNCATE_BUILTIN_ALGORITHM_KEY_CAMEL_CASE">TRUNCATE_BUILTIN_ALGORITHM_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#TRUNCATE_BUILTIN_ALGORITHM_KEY_SNAKE_CASE">TRUNCATE_BUILTIN_ALGORITHM_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#URL_ESCAPING_CHARSET_KEY">URL_ESCAPING_CHARSET_KEY</a>, <a href="../../freemarker/core/Configurable.html#URL_ESCAPING_CHARSET_KEY_CAMEL_CASE">URL_ESCAPING_CHARSET_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#URL_ESCAPING_CHARSET_KEY_SNAKE_CASE">URL_ESCAPING_CHARSET_KEY_SNAKE_CASE</a>, <a href="../../freemarker/core/Configurable.html#WRAP_UNCHECKED_EXCEPTIONS_KEY">WRAP_UNCHECKED_EXCEPTIONS_KEY</a>, <a href="../../freemarker/core/Configurable.html#WRAP_UNCHECKED_EXCEPTIONS_KEY_CAMEL_CASE">WRAP_UNCHECKED_EXCEPTIONS_KEY_CAMEL_CASE</a>, <a href="../../freemarker/core/Configurable.html#WRAP_UNCHECKED_EXCEPTIONS_KEY_SNAKE_CASE">WRAP_UNCHECKED_EXCEPTIONS_KEY_SNAKE_CASE</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#Template-java.lang.String-java.io.Reader-">Template</a></span>(java.lang.String&nbsp;name,
java.io.Reader&nbsp;reader)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">This constructor uses the "default" <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>
instance, which can easily lead to erroneous, unpredictable behavior.
See more <a href="../../freemarker/template/Configuration.html#getDefaultConfiguration--"><code>here...</code></a>.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-">Template</a></span>(java.lang.String&nbsp;name,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg)</code>
<div class="block">Same as <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(String, String, Reader, Configuration)</code></a> with <code>null</code> <code>sourceName</code> parameter.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-">Template</a></span>(java.lang.String&nbsp;name,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg,
java.lang.String&nbsp;encoding)</code>
<div class="block">Convenience constructor for <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-"><code>Template(name, null,
reader, cfg, encoding)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-freemarker.template.Configuration-">Template</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceCode,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg)</code>
<div class="block">Convenience constructor for <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(name, new StringReader(reader), cfg)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-">Template</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg)</code>
<div class="block">Constructs a template from a character stream.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-freemarker.core.ParserConfiguration-java.lang.String-">Template</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg,
<a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a>&nbsp;customParserConfiguration,
java.lang.String&nbsp;encoding)</code>
<div class="block">Same as <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-"><code>Template(String, String, Reader, Configuration, String)</code></a>, but also specifies a
<a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-">Template</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg,
java.lang.String&nbsp;encoding)</code>
<div class="block">Same as <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(String, String, Reader, Configuration)</code></a>, but also specifies the template's encoding (not
recommended).</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#addImport-freemarker.core.LibraryLoad-">addImport</a></span>(freemarker.core.LibraryLoad&nbsp;ll)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#addMacro-freemarker.core.Macro-">addMacro</a></span>(freemarker.core.Macro&nbsp;macro)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#addPrefixNSMapping-java.lang.String-java.lang.String-">addPrefixNSMapping</a></span>(java.lang.String&nbsp;prefix,
java.lang.String&nbsp;nsURI)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.util.List</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#containingElements-int-int-">containingElements</a></span>(int&nbsp;column,
int&nbsp;line)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#createProcessingEnvironment-java.lang.Object-java.io.Writer-">createProcessingEnvironment</a></span>(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out)</code>
<div class="block">Same as <a href="../../freemarker/template/Template.html#createProcessingEnvironment-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-"><code>createProcessingEnvironment(dataModel, out, null)</code></a>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#createProcessingEnvironment-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-">createProcessingEnvironment</a></span>(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out,
<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;wrapper)</code>
<div class="block">Creates a <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> object, using this template, the data-model provided as
parameter.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#dump-java.io.PrintStream-">dump</a></span>(java.io.PrintStream&nbsp;ps)</code>
<div class="block">Dump the raw template in canonical form.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#dump-java.io.Writer-">dump</a></span>(java.io.Writer&nbsp;out)</code>
<div class="block">Dump the raw template in canonical form.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getActualNamingConvention--">getActualNamingConvention</a></span>()</code>
<div class="block">Returns the naming convention the parser has chosen for this template.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getActualTagSyntax--">getActualTagSyntax</a></span>()</code>
<div class="block">Returns the tag syntax the parser has chosen for this template.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getAutoEscaping--">getAutoEscaping</a></span>()</code>
<div class="block">Returns if the template actually uses auto-escaping (see <a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>Configuration.setAutoEscapingPolicy(int)</code></a>).</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getConfiguration--">getConfiguration</a></span>()</code>
<div class="block">Returns the Configuration object associated with this template.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getCustomLookupCondition--">getCustomLookupCondition</a></span>()</code>
<div class="block">Gets the custom lookup condition with which this template was found.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getDefaultNS--">getDefaultNS</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getEncoding--">getEncoding</a></span>()</code>
<div class="block">The encoding that was (allegedly) used to read this template; also the the default character encoding used for
reading files included from this template.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.util.List</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getImports--">getImports</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getInterpolationSyntax--">getInterpolationSyntax</a></span>()</code>
<div class="block">Returns the interpolation syntax the parser has used for this template.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>java.util.Map</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getMacros--">getMacros</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getName--">getName</a></span>()</code>
<div class="block">The usually path-like (or URL-like) identifier of the template, or possibly <code>null</code> for non-stored
templates.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getNamespaceForPrefix-java.lang.String-">getNamespaceForPrefix</a></span>(java.lang.String&nbsp;prefix)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getOutputFormat--">getOutputFormat</a></span>()</code>
<div class="block">Returns the output format (see <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>Configuration.setOutputFormat(OutputFormat)</code></a>) used for this template.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getParserConfiguration--">getParserConfiguration</a></span>()</code>
<div class="block">Returns the <a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core"><code>ParserConfiguration</code></a> that was used for parsing this template.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getPlainTextTemplate-java.lang.String-java.lang.String-freemarker.template.Configuration-">getPlainTextTemplate</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;content,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;config)</code>
<div class="block">Same as <a href="../../freemarker/template/Template.html#getPlainTextTemplate-java.lang.String-java.lang.String-java.lang.String-freemarker.template.Configuration-"><code>getPlainTextTemplate(String, String, String, Configuration)</code></a> with <code>null</code> <code>sourceName</code>
argument.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getPlainTextTemplate-java.lang.String-java.lang.String-java.lang.String-freemarker.template.Configuration-">getPlainTextTemplate</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.lang.String&nbsp;content,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;config)</code>
<div class="block">Creates (not "get"-s) a <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> that only contains a single block of static text, no dynamic content.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getPrefixedName-java.lang.String-java.lang.String-">getPrefixedName</a></span>(java.lang.String&nbsp;localName,
java.lang.String&nbsp;nsURI)</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getPrefixForNamespace-java.lang.String-">getPrefixForNamespace</a></span>(java.lang.String&nbsp;nsURI)</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>freemarker.core.TemplateElement</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getRootTreeNode--">getRootTreeNode</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getSource-int-int-int-int-">getSource</a></span>(int&nbsp;beginColumn,
int&nbsp;beginLine,
int&nbsp;endColumn,
int&nbsp;endLine)</code>
<div class="block">Returns the template source at the location specified by the coordinates given, or <code>null</code> if unavailable.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#getSourceName--">getSourceName</a></span>()</code>
<div class="block">The name that was actually used to load this template from the <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> (or from other custom
storage mechanism).</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-">process</a></span>(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out)</code>
<div class="block">Executes template, using the data-model provided, writing the generated output to the supplied <code>Writer</code>.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-">process</a></span>(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out,
<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;wrapper)</code>
<div class="block">Like <a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process(Object, Writer)</code></a>, but overrides the <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a>.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-freemarker.template.TemplateNodeModel-">process</a></span>(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out,
<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;wrapper,
<a href="../../freemarker/template/TemplateNodeModel.html" title="interface in freemarker.template">TemplateNodeModel</a>&nbsp;rootNode)</code>
<div class="block">Like <a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process(Object, Writer)</code></a>, but also sets a (XML-)node to be recursively processed by the template.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#setCustomLookupCondition-java.lang.Object-">setCustomLookupCondition</a></span>(java.lang.Object&nbsp;customLookupCondition)</code>
<div class="block">Mostly only used internally; setter pair of <a href="../../freemarker/template/Template.html#getCustomLookupCondition--"><code>getCustomLookupCondition()</code></a>.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#setEncoding-java.lang.String-">setEncoding</a></span>(java.lang.String&nbsp;encoding)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Template.html#toString--">toString</a></span>()</code>
<div class="block">Returns a string representing the raw template
text in canonical form.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.freemarker.core.Configurable">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;freemarker.core.<a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></h3>
<code><a href="../../freemarker/core/Configurable.html#addAutoImport-java.lang.String-java.lang.String-">addAutoImport</a>, <a href="../../freemarker/core/Configurable.html#addAutoInclude-java.lang.String-">addAutoInclude</a>, <a href="../../freemarker/core/Configurable.html#clone--">clone</a>, <a href="../../freemarker/core/Configurable.html#doAutoImportsAndIncludes-freemarker.core.Environment-">doAutoImportsAndIncludes</a>, <a href="../../freemarker/core/Configurable.html#getArithmeticEngine--">getArithmeticEngine</a>, <a href="../../freemarker/core/Configurable.html#getAttemptExceptionReporter--">getAttemptExceptionReporter</a>, <a href="../../freemarker/core/Configurable.html#getAutoFlush--">getAutoFlush</a>, <a href="../../freemarker/core/Configurable.html#getAutoImports--">getAutoImports</a>, <a href="../../freemarker/core/Configurable.html#getAutoImportsWithoutFallback--">getAutoImportsWithoutFallback</a>, <a href="../../freemarker/core/Configurable.html#getAutoIncludes--">getAutoIncludes</a>, <a href="../../freemarker/core/Configurable.html#getAutoIncludesWithoutFallback--">getAutoIncludesWithoutFallback</a>, <a href="../../freemarker/core/Configurable.html#getBooleanFormat--">getBooleanFormat</a>, <a href="../../freemarker/core/Configurable.html#getCFormat--">getCFormat</a>, <a href="../../freemarker/core/Configurable.html#getClassicCompatibleAsInt--">getClassicCompatibleAsInt</a>, <a href="../../freemarker/core/Configurable.html#getCorrectedNameForUnknownSetting-java.lang.String-">getCorrectedNameForUnknownSetting</a>, <a href="../../freemarker/core/Configurable.html#getCustomAttribute-java.lang.String-">getCustomAttribute</a>, <a href="../../freemarker/core/Configurable.html#getCustomAttributeNames--">getCustomAttributeNames</a>, <a href="../../freemarker/core/Configurable.html#getCustomDateFormat-java.lang.String-">getCustomDateFormat</a>, <a href="../../freemarker/core/Configurable.html#getCustomDateFormats--">getCustomDateFormats</a>, <a href="../../freemarker/core/Configurable.html#getCustomDateFormatsWithoutFallback--">getCustomDateFormatsWithoutFallback</a>, <a href="../../freemarker/core/Configurable.html#getCustomNumberFormat-java.lang.String-">getCustomNumberFormat</a>, <a href="../../freemarker/core/Configurable.html#getCustomNumberFormats--">getCustomNumberFormats</a>, <a href="../../freemarker/core/Configurable.html#getCustomNumberFormatsWithoutFallback--">getCustomNumberFormatsWithoutFallback</a>, <a href="../../freemarker/core/Configurable.html#getDateFormat--">getDateFormat</a>, <a href="../../freemarker/core/Configurable.html#getDateTimeFormat--">getDateTimeFormat</a>, <a href="../../freemarker/core/Configurable.html#getEnvironment--">getEnvironment</a>, <a href="../../freemarker/core/Configurable.html#getLazyAutoImports--">getLazyAutoImports</a>, <a href="../../freemarker/core/Configurable.html#getLazyImports--">getLazyImports</a>, <a href="../../freemarker/core/Configurable.html#getLocale--">getLocale</a>, <a href="../../freemarker/core/Configurable.html#getLogTemplateExceptions--">getLogTemplateExceptions</a>, <a href="../../freemarker/core/Configurable.html#getNewBuiltinClassResolver--">getNewBuiltinClassResolver</a>, <a href="../../freemarker/core/Configurable.html#getNumberFormat--">getNumberFormat</a>, <a href="../../freemarker/core/Configurable.html#getObjectWrapper--">getObjectWrapper</a>, <a href="../../freemarker/core/Configurable.html#getOutputEncoding--">getOutputEncoding</a>, <a href="../../freemarker/core/Configurable.html#getParent--">getParent</a>, <a href="../../freemarker/core/Configurable.html#getSetting-java.lang.String-">getSetting</a>, <a href="../../freemarker/core/Configurable.html#getSettingNames-boolean-">getSettingNames</a>, <a href="../../freemarker/core/Configurable.html#getSettings--">getSettings</a>, <a href="../../freemarker/core/Configurable.html#getShowErrorTips--">getShowErrorTips</a>, <a href="../../freemarker/core/Configurable.html#getSQLDateAndTimeTimeZone--">getSQLDateAndTimeTimeZone</a>, <a href="../../freemarker/core/Configurable.html#getTemplateExceptionHandler--">getTemplateExceptionHandler</a>, <a href="../../freemarker/core/Configurable.html#getTimeFormat--">getTimeFormat</a>, <a href="../../freemarker/core/Configurable.html#getTimeZone--">getTimeZone</a>, <a href="../../freemarker/core/Configurable.html#getTruncateBuiltinAlgorithm--">getTruncateBuiltinAlgorithm</a>, <a href="../../freemarker/core/Configurable.html#getURLEscapingCharset--">getURLEscapingCharset</a>, <a href="../../freemarker/core/Configurable.html#getWrapUncheckedExceptions--">getWrapUncheckedExceptions</a>, <a href="../../freemarker/core/Configurable.html#hasCustomFormats--">hasCustomFormats</a>, <a href="../../freemarker/core/Configurable.html#invalidSettingValueException-java.lang.String-java.lang.String-">invalidSettingValueException</a>, <a href="../../freemarker/core/Configurable.html#isAPIBuiltinEnabled--">isAPIBuiltinEnabled</a>, <a href="../../freemarker/core/Configurable.html#isAPIBuiltinEnabledSet--">isAPIBuiltinEnabledSet</a>, <a href="../../freemarker/core/Configurable.html#isArithmeticEngineSet--">isArithmeticEngineSet</a>, <a href="../../freemarker/core/Configurable.html#isAttemptExceptionReporterSet--">isAttemptExceptionReporterSet</a>, <a href="../../freemarker/core/Configurable.html#isAutoFlushSet--">isAutoFlushSet</a>, <a href="../../freemarker/core/Configurable.html#isAutoImportsSet--">isAutoImportsSet</a>, <a href="../../freemarker/core/Configurable.html#isAutoIncludesSet--">isAutoIncludesSet</a>, <a href="../../freemarker/core/Configurable.html#isBooleanFormatSet--">isBooleanFormatSet</a>, <a href="../../freemarker/core/Configurable.html#isCFormatSet--">isCFormatSet</a>, <a href="../../freemarker/core/Configurable.html#isClassicCompatible--">isClassicCompatible</a>, <a href="../../freemarker/core/Configurable.html#isClassicCompatibleSet--">isClassicCompatibleSet</a>, <a href="../../freemarker/core/Configurable.html#isCustomDateFormatsSet--">isCustomDateFormatsSet</a>, <a href="../../freemarker/core/Configurable.html#isCustomNumberFormatsSet--">isCustomNumberFormatsSet</a>, <a href="../../freemarker/core/Configurable.html#isDateFormatSet--">isDateFormatSet</a>, <a href="../../freemarker/core/Configurable.html#isDateTimeFormatSet--">isDateTimeFormatSet</a>, <a href="../../freemarker/core/Configurable.html#isLazyAutoImportsSet--">isLazyAutoImportsSet</a>, <a href="../../freemarker/core/Configurable.html#isLazyImportsSet--">isLazyImportsSet</a>, <a href="../../freemarker/core/Configurable.html#isLocaleSet--">isLocaleSet</a>, <a href="../../freemarker/core/Configurable.html#isLogTemplateExceptionsSet--">isLogTemplateExceptionsSet</a>, <a href="../../freemarker/core/Configurable.html#isNewBuiltinClassResolverSet--">isNewBuiltinClassResolverSet</a>, <a href="../../freemarker/core/Configurable.html#isNumberFormatSet--">isNumberFormatSet</a>, <a href="../../freemarker/core/Configurable.html#isObjectWrapperSet--">isObjectWrapperSet</a>, <a href="../../freemarker/core/Configurable.html#isOutputEncodingSet--">isOutputEncodingSet</a>, <a href="../../freemarker/core/Configurable.html#isShowErrorTipsSet--">isShowErrorTipsSet</a>, <a href="../../freemarker/core/Configurable.html#isSQLDateAndTimeTimeZoneSet--">isSQLDateAndTimeTimeZoneSet</a>, <a href="../../freemarker/core/Configurable.html#isTemplateExceptionHandlerSet--">isTemplateExceptionHandlerSet</a>, <a href="../../freemarker/core/Configurable.html#isTimeFormatSet--">isTimeFormatSet</a>, <a href="../../freemarker/core/Configurable.html#isTimeZoneSet--">isTimeZoneSet</a>, <a href="../../freemarker/core/Configurable.html#isTruncateBuiltinAlgorithmSet--">isTruncateBuiltinAlgorithmSet</a>, <a href="../../freemarker/core/Configurable.html#isURLEscapingCharsetSet--">isURLEscapingCharsetSet</a>, <a href="../../freemarker/core/Configurable.html#isWrapUncheckedExceptionsSet--">isWrapUncheckedExceptionsSet</a>, <a href="../../freemarker/core/Configurable.html#parseAsImportList-java.lang.String-">parseAsImportList</a>, <a href="../../freemarker/core/Configurable.html#parseAsList-java.lang.String-">parseAsList</a>, <a href="../../freemarker/core/Configurable.html#parseAsSegmentedList-java.lang.String-">parseAsSegmentedList</a>, <a href="../../freemarker/core/Configurable.html#removeAutoImport-java.lang.String-">removeAutoImport</a>, <a href="../../freemarker/core/Configurable.html#removeAutoInclude-java.lang.String-">removeAutoInclude</a>, <a href="../../freemarker/core/Configurable.html#removeCustomAttribute-java.lang.String-">removeCustomAttribute</a>, <a href="../../freemarker/core/Configurable.html#setAPIBuiltinEnabled-boolean-">setAPIBuiltinEnabled</a>, <a href="../../freemarker/core/Configurable.html#setArithmeticEngine-freemarker.core.ArithmeticEngine-">setArithmeticEngine</a>, <a href="../../freemarker/core/Configurable.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-">setAttemptExceptionReporter</a>, <a href="../../freemarker/core/Configurable.html#setAutoFlush-boolean-">setAutoFlush</a>, <a href="../../freemarker/core/Configurable.html#setAutoImports-java.util.Map-">setAutoImports</a>, <a href="../../freemarker/core/Configurable.html#setAutoIncludes-java.util.List-">setAutoIncludes</a>, <a href="../../freemarker/core/Configurable.html#setBooleanFormat-java.lang.String-">setBooleanFormat</a>, <a href="../../freemarker/core/Configurable.html#setCFormat-freemarker.core.CFormat-">setCFormat</a>, <a href="../../freemarker/core/Configurable.html#setClassicCompatible-boolean-">setClassicCompatible</a>, <a href="../../freemarker/core/Configurable.html#setClassicCompatibleAsInt-int-">setClassicCompatibleAsInt</a>, <a href="../../freemarker/core/Configurable.html#setCustomAttribute-java.lang.String-java.lang.Object-">setCustomAttribute</a>, <a href="../../freemarker/core/Configurable.html#setCustomDateFormats-java.util.Map-">setCustomDateFormats</a>, <a href="../../freemarker/core/Configurable.html#setCustomNumberFormats-java.util.Map-">setCustomNumberFormats</a>, <a href="../../freemarker/core/Configurable.html#setDateFormat-java.lang.String-">setDateFormat</a>, <a href="../../freemarker/core/Configurable.html#setDateTimeFormat-java.lang.String-">setDateTimeFormat</a>, <a href="../../freemarker/core/Configurable.html#setLazyAutoImports-java.lang.Boolean-">setLazyAutoImports</a>, <a href="../../freemarker/core/Configurable.html#setLazyImports-boolean-">setLazyImports</a>, <a href="../../freemarker/core/Configurable.html#setLocale-java.util.Locale-">setLocale</a>, <a href="../../freemarker/core/Configurable.html#setLogTemplateExceptions-boolean-">setLogTemplateExceptions</a>, <a href="../../freemarker/core/Configurable.html#setNewBuiltinClassResolver-freemarker.core.TemplateClassResolver-">setNewBuiltinClassResolver</a>, <a href="../../freemarker/core/Configurable.html#setNumberFormat-java.lang.String-">setNumberFormat</a>, <a href="../../freemarker/core/Configurable.html#setObjectWrapper-freemarker.template.ObjectWrapper-">setObjectWrapper</a>, <a href="../../freemarker/core/Configurable.html#setOutputEncoding-java.lang.String-">setOutputEncoding</a>, <a href="../../freemarker/core/Configurable.html#setSetting-java.lang.String-java.lang.String-">setSetting</a>, <a href="../../freemarker/core/Configurable.html#setSettings-java.io.InputStream-">setSettings</a>, <a href="../../freemarker/core/Configurable.html#setSettings-java.util.Properties-">setSettings</a>, <a href="../../freemarker/core/Configurable.html#setShowErrorTips-boolean-">setShowErrorTips</a>, <a href="../../freemarker/core/Configurable.html#setSQLDateAndTimeTimeZone-java.util.TimeZone-">setSQLDateAndTimeTimeZone</a>, <a href="../../freemarker/core/Configurable.html#setStrictBeanModels-boolean-">setStrictBeanModels</a>, <a href="../../freemarker/core/Configurable.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-">setTemplateExceptionHandler</a>, <a href="../../freemarker/core/Configurable.html#setTimeFormat-java.lang.String-">setTimeFormat</a>, <a href="../../freemarker/core/Configurable.html#setTimeZone-java.util.TimeZone-">setTimeZone</a>, <a href="../../freemarker/core/Configurable.html#settingValueAssignmentException-java.lang.String-java.lang.String-java.lang.Throwable-">settingValueAssignmentException</a>, <a href="../../freemarker/core/Configurable.html#setTruncateBuiltinAlgorithm-freemarker.core.TruncateBuiltinAlgorithm-">setTruncateBuiltinAlgorithm</a>, <a href="../../freemarker/core/Configurable.html#setURLEscapingCharset-java.lang.String-">setURLEscapingCharset</a>, <a href="../../freemarker/core/Configurable.html#setWrapUncheckedExceptions-boolean-">setWrapUncheckedExceptions</a>, <a href="../../freemarker/core/Configurable.html#unknownSettingException-java.lang.String-">unknownSettingException</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DEFAULT_NAMESPACE_PREFIX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_NAMESPACE_PREFIX</h4>
<pre>public static final&nbsp;java.lang.String DEFAULT_NAMESPACE_PREFIX</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Template.DEFAULT_NAMESPACE_PREFIX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NO_NS_PREFIX">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NO_NS_PREFIX</h4>
<pre>public static final&nbsp;java.lang.String NO_NS_PREFIX</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Template.NO_NS_PREFIX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Template</h4>
<pre>public&nbsp;Template(java.lang.String&nbsp;name,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg)
throws java.io.IOException</pre>
<div class="block">Same as <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(String, String, Reader, Configuration)</code></a> with <code>null</code> <code>sourceName</code> parameter.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="Template-java.lang.String-java.lang.String-freemarker.template.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Template</h4>
<pre>public&nbsp;Template(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceCode,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg)
throws java.io.IOException</pre>
<div class="block">Convenience constructor for <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(name, new StringReader(reader), cfg)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
</dl>
</li>
</ul>
<a name="Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Template</h4>
<pre>public&nbsp;Template(java.lang.String&nbsp;name,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg,
java.lang.String&nbsp;encoding)
throws java.io.IOException</pre>
<div class="block">Convenience constructor for <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-"><code>Template(name, null,
reader, cfg, encoding)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Template</h4>
<pre>public&nbsp;Template(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg)
throws java.io.IOException</pre>
<div class="block">Constructs a template from a character stream. Note that this is a relatively expensive operation; where higher
performance matters, you should re-use (cache) <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> instances instead of re-creating them from the
same source again and again. (<a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>and its overloads already do such reuse.</code></a>)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The path of the template file relatively to the (virtual) directory that you use to store the
templates (except if <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-"><code>sourceName</code></a>
differs from it). Shouldn't start with <code>'/'</code>. Should use <code>'/'</code>, not <code>'\'</code>. Check
<a href="../../freemarker/template/Template.html#getName--"><code>getName()</code></a> to see how the name will be used. The name should be independent of the actual
storage mechanism and physical location as far as possible. Even when the templates are stored
straightforwardly in real files (they often aren't; see <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>), the name shouldn't be
an absolute file path. Like if the template is stored in <code>"/www/templates/forum/main.ftl"</code>, and
you are using <code>"/www/templates/"</code> as the template root directory via
<a href="../../freemarker/template/Configuration.html#setDirectoryForTemplateLoading-java.io.File-"><code>Configuration.setDirectoryForTemplateLoading(java.io.File)</code></a>, then the template name will be
<code>"forum/main.ftl"</code>. The name can be <code>null</code> (should be used for template made on-the-fly
instead of being loaded from somewhere), in which case relative paths in it will be relative to
the template root directory (and here again, it's the <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that knows what that
"physically" means).</dd>
<dd><code>sourceName</code> - See <a href="../../freemarker/template/Template.html#getSourceName--"><code>getSourceName()</code></a> for the meaning. Can be <code>null</code>, in which case
<a href="../../freemarker/template/Template.html#getSourceName--"><code>getSourceName()</code></a> will return the same as <a href="../../freemarker/template/Template.html#getName--"><code>getName()</code></a>.</dd>
<dd><code>reader</code> - The character stream to read from. It will always be closed (<code>Reader.close()</code>) by
this method (this is for backward compatibility; later major versions may discontinue this behavior).
The <code>Reader</code> need not be buffered, because this method ensures that it will be read in few
kilobyte chunks, not byte by byte.</dd>
<dd><code>cfg</code> - The Configuration object that this Template is associated with. If this is <code>null</code>, the "default"
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object is used, which is highly discouraged, because it can easily lead to
erroneous, unpredictable behavior. (See more <a href="../../freemarker/template/Configuration.html#getDefaultConfiguration--"><code>here...</code></a>)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Template</h4>
<pre>public&nbsp;Template(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg,
java.lang.String&nbsp;encoding)
throws java.io.IOException</pre>
<div class="block">Same as <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(String, String, Reader, Configuration)</code></a>, but also specifies the template's encoding (not
recommended).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encoding</code> - This is the encoding that we are supposed to be using. At the first glance it's unnecessary because we
already have a <code>Reader</code> (so decoding with the charset has already happened), however, if this is
non-<code>null</code> and there's an <code>#ftl</code> header with <code>encoding</code> parameter, they must match,
or else a <a href="../../freemarker/template/Template.WrongEncodingException.html" title="class in freemarker.template"><code>Template.WrongEncodingException</code></a> is thrown. Thus, it should be set if to decode the template,
we were using an encoding (a charset), otherwise it should be <code>null</code>. It's also kept as
meta-info (returned by <a href="../../freemarker/template/Template.html#getEncoding--"><code>getEncoding()</code></a>). It also has an impact when <code>#include</code>-ing or
<code>#import</code>-ing another template from this template, as its default encoding will be this. But
this behavior of said directives is considered to be harmful, and will be probably phased out.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-freemarker.core.ParserConfiguration-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Template</h4>
<pre>public&nbsp;Template(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.io.Reader&nbsp;reader,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;cfg,
<a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a>&nbsp;customParserConfiguration,
java.lang.String&nbsp;encoding)
throws java.io.IOException</pre>
<div class="block">Same as <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-"><code>Template(String, String, Reader, Configuration, String)</code></a>, but also specifies a
<a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a>. This is mostly meant to be used by FreeMarker internally, but advanced users might
still find this useful.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>customParserConfiguration</code> - Overrides the parsing related configuration settings of the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> parameter; can be
<code>null</code>. This is useful as the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> is normally a singleton shared by all
templates, and so it's not good for specifying template-specific settings. (While <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a>
itself has methods to specify settings just for that template, those don't influence the parsing, and
you only have opportunity to call them after the parsing anyway.) This objects is often a
<a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a> whose parent is the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> parameter, and then it
practically just overrides some of the parser settings, as the others are inherited from the
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>. Note that if this is a <a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a>, you will also want to
call <a href="../../freemarker/core/TemplateConfiguration.html#apply-freemarker.template.Template-"><code>TemplateConfiguration.apply(Template)</code></a> on the resulting <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> so that
<a href="../../freemarker/core/Configurable.html" title="class in freemarker.core"><code>Configurable</code></a> settings will be set too, because this constructor only uses it as a
<a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core"><code>ParserConfiguration</code></a>.</dd>
<dd><code>encoding</code> - Same as in <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.lang.String-java.io.Reader-freemarker.template.Configuration-java.lang.String-"><code>Template(String, String, Reader, Configuration, String)</code></a>. When it's non-<code>null</code>, it overrides the value coming from the <a href="../../freemarker/core/TemplateConfiguration.html#getEncoding--"><code>TemplateConfiguration.getEncoding()</code></a> method of
the <code>templateConfiguration</code> parameter.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="Template-java.lang.String-java.io.Reader-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Template</h4>
<pre>@Deprecated
public&nbsp;Template(java.lang.String&nbsp;name,
java.io.Reader&nbsp;reader)
throws java.io.IOException</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This constructor uses the "default" <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>
instance, which can easily lead to erroneous, unpredictable behavior.
See more <a href="../../freemarker/template/Configuration.html#getDefaultConfiguration--"><code>here...</code></a>.</span></div>
<div class="block">Equivalent to <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(name, reader, null)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getPlainTextTemplate-java.lang.String-java.lang.String-freemarker.template.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlainTextTemplate</h4>
<pre>public static&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getPlainTextTemplate(java.lang.String&nbsp;name,
java.lang.String&nbsp;content,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;config)</pre>
<div class="block">Same as <a href="../../freemarker/template/Template.html#getPlainTextTemplate-java.lang.String-java.lang.String-java.lang.String-freemarker.template.Configuration-"><code>getPlainTextTemplate(String, String, String, Configuration)</code></a> with <code>null</code> <code>sourceName</code>
argument.</div>
</li>
</ul>
<a name="getPlainTextTemplate-java.lang.String-java.lang.String-java.lang.String-freemarker.template.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlainTextTemplate</h4>
<pre>public static&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getPlainTextTemplate(java.lang.String&nbsp;name,
java.lang.String&nbsp;sourceName,
java.lang.String&nbsp;content,
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;config)</pre>
<div class="block">Creates (not "get"-s) a <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> that only contains a single block of static text, no dynamic content.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - See <a href="../../freemarker/template/Template.html#getName--"><code>getName()</code></a> for more details.</dd>
<dd><code>sourceName</code> - See <a href="../../freemarker/template/Template.html#getSourceName--"><code>getSourceName()</code></a> for more details. If <code>null</code>, it will be the same as the <code>name</code>.</dd>
<dd><code>content</code> - the block of text that this template represents</dd>
<dd><code>config</code> - the configuration to which this template belongs</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="process-java.lang.Object-java.io.Writer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>process</h4>
<pre>public&nbsp;void&nbsp;process(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a>,
java.io.IOException</pre>
<div class="block">Executes template, using the data-model provided, writing the generated output to the supplied <code>Writer</code>.
<p>
For finer control over the runtime environment setup, such as per-HTTP-request configuring of FreeMarker
settings, you may need to use <a href="../../freemarker/template/Template.html#createProcessingEnvironment-java.lang.Object-java.io.Writer-"><code>createProcessingEnvironment(Object, Writer)</code></a> instead.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataModel</code> - the holder of the variables visible from the template (name-value pairs); usually a
<code>Map&lt;String, Object&gt;</code> or a JavaBean (where the JavaBean properties will be the variables). Can
be any object that the <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> in use turns into a <a href="../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template"><code>TemplateHashModel</code></a>. You can
also use an object that already implements <a href="../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template"><code>TemplateHashModel</code></a>; in that case it won't be
wrapped. If it's <code>null</code>, an empty data model is used.</dd>
<dd><code>out</code> - The <code>Writer</code> where the output of the template will go. Note that unless you have used
<a href="../../freemarker/core/Configurable.html#setAutoFlush-boolean-"><code>Configurable.setAutoFlush(boolean)</code></a> to disable this, <code>Writer.flush()</code> will be called at
the when the template processing was finished. <code>Writer.close()</code> is not called. Can't be
<code>null</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code> - if an exception occurs during template processing</dd>
<dd><code>java.io.IOException</code> - if an I/O exception occurs during writing to the writer.</dd>
</dl>
</li>
</ul>
<a name="process-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-freemarker.template.TemplateNodeModel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>process</h4>
<pre>public&nbsp;void&nbsp;process(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out,
<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;wrapper,
<a href="../../freemarker/template/TemplateNodeModel.html" title="interface in freemarker.template">TemplateNodeModel</a>&nbsp;rootNode)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a>,
java.io.IOException</pre>
<div class="block">Like <a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process(Object, Writer)</code></a>, but also sets a (XML-)node to be recursively processed by the template.
That node is accessed in the template with <tt>.node</tt>, <tt>#recurse</tt>, etc. See the
<a href="https://freemarker.apache.org/docs/xgui_declarative.html" target="_blank">Declarative XML Processing</a> as a
typical example of recursive node processing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rootNode</code> - The root node for recursive processing or <code>null</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code> - if an exception occurs during template processing</dd>
<dd><code>java.io.IOException</code> - if an I/O exception occurs during writing to the writer.</dd>
</dl>
</li>
</ul>
<a name="process-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>process</h4>
<pre>public&nbsp;void&nbsp;process(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out,
<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;wrapper)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a>,
java.io.IOException</pre>
<div class="block">Like <a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process(Object, Writer)</code></a>, but overrides the <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>wrapper</code> - The <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> to be used instead of what <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a>
provides, or <code>null</code> if you don't want to override that.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="createProcessingEnvironment-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProcessingEnvironment</h4>
<pre>public&nbsp;<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;createProcessingEnvironment(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out,
<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;wrapper)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a>,
java.io.IOException</pre>
<div class="block">Creates a <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> object, using this template, the data-model provided as
parameter. You have to call <a href="../../freemarker/core/Environment.html#process--"><code>Environment.process()</code></a> on the return value to set off the actual rendering.
<p>Use this method if you want to do some special initialization on the <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> before template
processing, or if you want to read the <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> after template processing. Otherwise using
<a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process(Object, Writer)</code></a> is simpler.
<p>Example:
<pre>
Environment env = myTemplate.createProcessingEnvironment(root, out, null);
env.process();</pre>
<p>The above is equivalent with this:
<pre>
myTemplate.process(root, out);</pre>
<p>But with <tt>createProcessingEnvironment</tt>, you can manipulate the environment
before and after the processing:
<pre>
Environment env = myTemplate.createProcessingEnvironment(root, out);
env.setLocale(myUsersPreferredLocale);
env.setTimeZone(myUsersPreferredTimezone);
env.process(); // output is rendered here
TemplateModel x = env.getVariable("x"); // read back a variable set by the template</pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataModel</code> - the holder of the variables visible from all templates; see <a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process(Object, Writer)</code></a> for
more details.</dd>
<dd><code>wrapper</code> - The <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> to use to wrap objects into <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>
instances. Normally you left it <code>null</code>, in which case <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a> will be
used.</dd>
<dd><code>out</code> - The <code>Writer</code> where the output of the template will go; see <a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process(Object, Writer)</code></a> for
more details.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> object created for processing. Call <a href="../../freemarker/core/Environment.html#process--"><code>Environment.process()</code></a> to process the
template.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code> - if an exception occurs while setting up the Environment object.</dd>
<dd><code>java.io.IOException</code> - if an exception occurs doing any auto-imports</dd>
</dl>
</li>
</ul>
<a name="createProcessingEnvironment-java.lang.Object-java.io.Writer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createProcessingEnvironment</h4>
<pre>public&nbsp;<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;createProcessingEnvironment(java.lang.Object&nbsp;dataModel,
java.io.Writer&nbsp;out)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a>,
java.io.IOException</pre>
<div class="block">Same as <a href="../../freemarker/template/Template.html#createProcessingEnvironment-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-"><code>createProcessingEnvironment(dataModel, out, null)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Returns a string representing the raw template
text in canonical form.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="getName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getName()</pre>
<div class="block">The usually path-like (or URL-like) identifier of the template, or possibly <code>null</code> for non-stored
templates. It usually looks like a relative UN*X path; it should use <code>/</code>, not <code>\</code>, and shouldn't
start with <code>/</code> (but there are no hard guarantees). It's not a real path in a file-system, it's just a name
that a <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> used to load the backing resource (in simple cases; actually that name is
<a href="../../freemarker/template/Template.html#getSourceName--"><code>getSourceName()</code></a>, but see it there). Or, it can also be a name that was never used to load the template
(directly created with <a href="../../freemarker/template/Template.html#Template-java.lang.String-java.io.Reader-freemarker.template.Configuration-"><code>Template(String, Reader, Configuration)</code></a>). Even if the templates are stored
straightforwardly in files, this is relative to the base directory of the <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>. So it really
could be anything, except that it has importance in these situations:
<p>
Relative paths to other templates in this template will be resolved relatively to the directory part of this.
Like if the template name is <code>"foo/this.ftl"</code>, then <code>&lt;#include "other.ftl"&gt;</code> gets the template with
name <code>"foo/other.ftl"</code>.
</p>
<p>
You should not use this name to indicate error locations, or to find the actual templates in general, because
localized lookup, acquisition and other lookup strategies can transform names before they get to the
<a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> (the template storage) mechanism. Use <a href="../../freemarker/template/Template.html#getSourceName--"><code>getSourceName()</code></a> for these purposes.
</p>
<p>
Some frameworks use URL-like template names like <code>"someSchema://foo/bar.ftl"</code>. FreeMarker understands this
notation, so an absolute path like <code>"/baaz.ftl"</code> in that template will be resolved too
<code>"someSchema://baaz.ftl"</code>.</div>
</li>
</ul>
<a name="getSourceName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getSourceName()</pre>
<div class="block">The name that was actually used to load this template from the <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> (or from other custom
storage mechanism). This is what should be shown in error messages as the error location. This is usually the
same as <a href="../../freemarker/template/Template.html#getName--"><code>getName()</code></a>, except when localized lookup, template acquisition (<code>*</code> step in the name), or
other <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a> transforms the requested name (<a href="../../freemarker/template/Template.html#getName--"><code>getName()</code></a>) to a different final
<a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>-level name. For example, when you get a template with name <code>"foo.ftl"</code> then because
of localized lookup, it's possible that something like <code>"foo_en.ftl"</code> will be loaded behind the scenes.
While the template name will be still the same as the requested template name (<code>"foo.ftl"</code>), errors should
point to <code>"foo_de.ftl"</code>. Note that relative paths are always resolved relatively to the <code>name</code>, not
to the <code>sourceName</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getConfiguration--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfiguration</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;getConfiguration()</pre>
<div class="block">Returns the Configuration object associated with this template.</div>
</li>
</ul>
<a name="getParserConfiguration--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParserConfiguration</h4>
<pre>public&nbsp;<a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a>&nbsp;getParserConfiguration()</pre>
<div class="block">Returns the <a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core"><code>ParserConfiguration</code></a> that was used for parsing this template. This is most often the same
object as <a href="../../freemarker/template/Template.html#getConfiguration--"><code>getConfiguration()</code></a>, but sometimes it's a <a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a>, or something else.
It's never <code>null</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="setEncoding-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEncoding</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;setEncoding(java.lang.String&nbsp;encoding)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encoding</code> - The encoding that was used to read this template. When this template <code>#include</code>-s or
<code>#import</code>-s another template, by default it will use this encoding for those. For backward
compatibility, this can be <code>null</code>, which will unset this setting.</dd>
</dl>
</li>
</ul>
<a name="getEncoding--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEncoding</h4>
<pre>public&nbsp;java.lang.String&nbsp;getEncoding()</pre>
<div class="block">The encoding that was (allegedly) used to read this template; also the the default character encoding used for
reading files included from this template. Possibly <code>null</code>, in which case you are supposed to use
<a href="../../freemarker/template/Configuration.html#getEncoding-java.util.Locale-"><code>Configuration.getEncoding(Locale)</code></a>.</div>
</li>
</ul>
<a name="getCustomLookupCondition--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCustomLookupCondition</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getCustomLookupCondition()</pre>
<div class="block">Gets the custom lookup condition with which this template was found. See the <code>customLookupCondition</code>
parameter of <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>Configuration.getTemplate(String, java.util.Locale, Object, String, boolean, boolean)</code></a> for
more explanation.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="setCustomLookupCondition-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCustomLookupCondition</h4>
<pre>public&nbsp;void&nbsp;setCustomLookupCondition(java.lang.Object&nbsp;customLookupCondition)</pre>
<div class="block">Mostly only used internally; setter pair of <a href="../../freemarker/template/Template.html#getCustomLookupCondition--"><code>getCustomLookupCondition()</code></a>. This meant to be called directly
after instantiating the template with its constructor, after a successfull lookup that used this condition. So
this should only be called from code that deals with creating new <code>Template</code> objects, like from
<a href="../../freemarker/cache/TemplateCache.html" title="class in freemarker.cache"><code>TemplateCache</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getActualTagSyntax--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActualTagSyntax</h4>
<pre>public&nbsp;int&nbsp;getActualTagSyntax()</pre>
<div class="block">Returns the tag syntax the parser has chosen for this template. If the syntax could be determined, it's
<a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_TAG_SYNTAX"><code>Configuration.SQUARE_BRACKET_TAG_SYNTAX</code></a> or <a href="../../freemarker/template/Configuration.html#ANGLE_BRACKET_TAG_SYNTAX"><code>Configuration.ANGLE_BRACKET_TAG_SYNTAX</code></a>. If the syntax
couldn't be determined (like because there was no tags in the template, or it was a plain text template), this
returns whatever the default is in the current configuration, so it's maybe
<a href="../../freemarker/template/Configuration.html#AUTO_DETECT_TAG_SYNTAX"><code>Configuration.AUTO_DETECT_TAG_SYNTAX</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setTagSyntax-int-"><code>Configuration.setTagSyntax(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="getInterpolationSyntax--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterpolationSyntax</h4>
<pre>public&nbsp;int&nbsp;getInterpolationSyntax()</pre>
<div class="block">Returns the interpolation syntax the parser has used for this template. Because the interpolation syntax is
never auto-detected, it's not called "getActualInterpolationSyntax" (unlike <a href="../../freemarker/template/Template.html#getActualTagSyntax--"><code>getActualTagSyntax()</code></a>).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A constant like <a href="../../freemarker/template/Configuration.html#LEGACY_INTERPOLATION_SYNTAX"><code>Configuration.LEGACY_INTERPOLATION_SYNTAX</code></a>,
<a href="../../freemarker/template/Configuration.html#DOLLAR_INTERPOLATION_SYNTAX"><code>Configuration.DOLLAR_INTERPOLATION_SYNTAX</code></a>, or
<a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_INTERPOLATION_SYNTAX"><code>Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX</code></a>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.28</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-"><code>Configuration.setInterpolationSyntax(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="getActualNamingConvention--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActualNamingConvention</h4>
<pre>public&nbsp;int&nbsp;getActualNamingConvention()</pre>
<div class="block">Returns the naming convention the parser has chosen for this template. If it could be determined, it's
<a href="../../freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION"><code>Configuration.LEGACY_NAMING_CONVENTION</code></a> or <a href="../../freemarker/template/Configuration.html#CAMEL_CASE_NAMING_CONVENTION"><code>Configuration.CAMEL_CASE_NAMING_CONVENTION</code></a>. If it
couldn't be determined (like because there no identifier that's part of the template language was used where
the naming convention matters), this returns whatever the default is in the current configuration, so it's maybe
<a href="../../freemarker/template/Configuration.html#AUTO_DETECT_TAG_SYNTAX"><code>Configuration.AUTO_DETECT_TAG_SYNTAX</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.23</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setNamingConvention-int-"><code>Configuration.setNamingConvention(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="getOutputFormat--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutputFormat</h4>
<pre>public&nbsp;<a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a>&nbsp;getOutputFormat()</pre>
<div class="block">Returns the output format (see <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>Configuration.setOutputFormat(OutputFormat)</code></a>) used for this template.
The output format of a template can come from various places, in order of increasing priority:
<a href="../../freemarker/template/Configuration.html#getOutputFormat--"><code>Configuration.getOutputFormat()</code></a>, <a href="../../freemarker/core/ParserConfiguration.html#getOutputFormat--"><code>ParserConfiguration.getOutputFormat()</code></a> (which is usually
provided by <a href="../../freemarker/template/Configuration.html#getTemplateConfigurations--"><code>Configuration.getTemplateConfigurations()</code></a>) and the <code>#ftl</code> header's <code>output_format</code>
option in the template.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="getAutoEscaping--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAutoEscaping</h4>
<pre>public&nbsp;boolean&nbsp;getAutoEscaping()</pre>
<div class="block">Returns if the template actually uses auto-escaping (see <a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>Configuration.setAutoEscapingPolicy(int)</code></a>). This value
is decided by the parser based on the actual <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a>, and the auto-escaping enums, in order of
increasing priority: <a href="../../freemarker/template/Configuration.html#getAutoEscapingPolicy--"><code>Configuration.getAutoEscapingPolicy()</code></a>, <a href="../../freemarker/core/ParserConfiguration.html#getAutoEscapingPolicy--"><code>ParserConfiguration.getAutoEscapingPolicy()</code></a>
(which is usually provided by <a href="../../freemarker/template/Configuration.html#getTemplateConfigurations--"><code>Configuration.getTemplateConfigurations()</code></a>), and finally on the <code>#ftl</code>
header's <code>auto_esc</code> option in the template.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="dump-java.io.PrintStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dump</h4>
<pre>public&nbsp;void&nbsp;dump(java.io.PrintStream&nbsp;ps)</pre>
<div class="block">Dump the raw template in canonical form.</div>
</li>
</ul>
<a name="dump-java.io.Writer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dump</h4>
<pre>public&nbsp;void&nbsp;dump(java.io.Writer&nbsp;out)
throws java.io.IOException</pre>
<div class="block">Dump the raw template in canonical form.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="addMacro-freemarker.core.Macro-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMacro</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;addMacro(freemarker.core.Macro&nbsp;macro)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
<div class="block">Called by code internally to maintain a table of macros</div>
</li>
</ul>
<a name="addImport-freemarker.core.LibraryLoad-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addImport</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;addImport(freemarker.core.LibraryLoad&nbsp;ll)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
<div class="block">Called by code internally to maintain a list of imports</div>
</li>
</ul>
<a name="getSource-int-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSource</h4>
<pre>public&nbsp;java.lang.String&nbsp;getSource(int&nbsp;beginColumn,
int&nbsp;beginLine,
int&nbsp;endColumn,
int&nbsp;endLine)</pre>
<div class="block">Returns the template source at the location specified by the coordinates given, or <code>null</code> if unavailable.
A strange legacy in the behavior of this method is that it replaces tab characters with spaces according the
value of <a href="../../freemarker/template/Template.html#getParserConfiguration--"><code>getParserConfiguration()</code></a>/<a href="../../freemarker/core/ParserConfiguration.html#getTabSize--"><code>ParserConfiguration.getTabSize()</code></a> (which usually
comes from <a href="../../freemarker/template/Configuration.html#getTabSize--"><code>Configuration.getTabSize()</code></a>), because tab characters move the column number with more than
1 in error messages. However, if you set the tab size to 1, this method leaves the tab characters as is.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>beginColumn</code> - the first column of the requested source, 1-based</dd>
<dd><code>beginLine</code> - the first line of the requested source, 1-based</dd>
<dd><code>endColumn</code> - the last column of the requested source, 1-based</dd>
<dd><code>endLine</code> - the last line of the requested source, 1-based</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>TemplateObject.getSource()</code></dd>
</dl>
</li>
</ul>
<a name="getRootTreeNode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRootTreeNode</h4>
<pre>@Deprecated
public&nbsp;freemarker.core.TemplateElement&nbsp;getRootTreeNode()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</li>
</ul>
<a name="getMacros--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMacros</h4>
<pre>@Deprecated
public&nbsp;java.util.Map&nbsp;getMacros()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</li>
</ul>
<a name="getImports--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImports</h4>
<pre>@Deprecated
public&nbsp;java.util.List&nbsp;getImports()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
</li>
</ul>
<a name="addPrefixNSMapping-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addPrefixNSMapping</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;addPrefixNSMapping(java.lang.String&nbsp;prefix,
java.lang.String&nbsp;nsURI)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
<div class="block">This is used internally.</div>
</li>
</ul>
<a name="getDefaultNS--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultNS</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDefaultNS()</pre>
</li>
</ul>
<a name="getNamespaceForPrefix-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamespaceForPrefix</h4>
<pre>public&nbsp;java.lang.String&nbsp;getNamespaceForPrefix(java.lang.String&nbsp;prefix)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the NamespaceUri mapped to this prefix in this template. (Or null if there is none.)</dd>
</dl>
</li>
</ul>
<a name="getPrefixForNamespace-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrefixForNamespace</h4>
<pre>public&nbsp;java.lang.String&nbsp;getPrefixForNamespace(java.lang.String&nbsp;nsURI)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the prefix mapped to this nsURI in this template. (Or null if there is none.)</dd>
</dl>
</li>
</ul>
<a name="getPrefixedName-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrefixedName</h4>
<pre>public&nbsp;java.lang.String&nbsp;getPrefixedName(java.lang.String&nbsp;localName,
java.lang.String&nbsp;nsURI)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the prefixed name, based on the ns_prefixes defined
in this template's header for the local name and node namespace
passed in as parameters.</dd>
</dl>
</li>
</ul>
<a name="containingElements-int-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>containingElements</h4>
<pre>@Deprecated
public&nbsp;java.util.List&nbsp;containingElements(int&nbsp;column,
int&nbsp;line)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Should only be used internally, and might will be removed later.</span></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of the <code>TemplateElement</code>s containing the given column and line numbers.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Template.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/template/Template.WrongEncodingException.html" title="class in freemarker.template"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/template/Template.html" target="_top">Frames</a></li>
<li><a href="Template.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>