blob: 61c0ea5d86efb8060bf2d778f4d6e31bb7bcb150 [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>Configuration (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="Configuration (FreeMarker 2.3.32 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":41,"i9":10,"i10":9,"i11":10,"i12":10,"i13":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":42,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":9,"i46":41,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":41,"i78":10,"i79":10,"i80":10,"i81":10,"i82":42,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":42,"i99":42,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":42,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":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/Configuration.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/AttemptExceptionReporter.html" title="interface in freemarker.template"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/template/DefaultArrayAdapter.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/Configuration.html" target="_top">Frames</a></li>
<li><a href="Configuration.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.classes.inherited.from.class.freemarker.core.Configurable">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 Configuration" class="title">Class Configuration</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.Configuration</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a>, java.lang.Cloneable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">Configuration</span>
extends <a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a>
implements java.lang.Cloneable, <a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></pre>
<div class="block"><b>The main entry point into the FreeMarker API</b>; encapsulates the configuration settings of FreeMarker,
also serves as a central template-loading and caching service.
<p>This class is meant to be used in a singleton pattern. That is, you create an instance of this at the beginning of
the application life-cycle, set its <a href="../../freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-"><code>configuration settings</code></a> there (either with the
setter methods like <a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a> or by loading a <code>.properties</code> file), and then
use that single instance everywhere in your application. Frequently re-creating <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> is a typical
and grave mistake from performance standpoint, as the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> holds the template cache, and often also
the class introspection cache, which then will be lost. (Note that, naturally, having multiple long-lived instances,
like one per component that internally uses FreeMarker is fine.)
<p>The basic usage pattern is like:
<pre>
// Where the application is initialized; in general you do this ONLY ONCE in the application life-cycle!
Configuration cfg = new Configuration(VERSION_<i>X</i>_<i>Y</i>_<i>Z</i>));
// Where VERSION_<i>X</i>_<i>Y</i>_<i>Z</i> enables the not-100%-backward-compatible fixes introduced in
// FreeMarker version X.Y.Z and earlier (see <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a>).
cfg.set<i>SomeSetting</i>(...);
cfg.set<i>OtherSetting</i>(...);
...
// Later, whenever the application needs a template (so you may do this a lot, and from multiple threads):
<a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> myTemplate = cfg.<a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>getTemplate</code></a>("myTemplate.ftlh");
myTemplate.<a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>process</code></a>(dataModel, out);</pre>
<p>A couple of settings that you should not leave on its default value are:
<ul>
<li><a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>template_loader</code></a>: The default value is deprecated and in fact quite
useless. (For the most common cases you can use the convenience methods,
<a href="../../freemarker/template/Configuration.html#setDirectoryForTemplateLoading-java.io.File-"><code>setDirectoryForTemplateLoading(File)</code></a> and <a href="../../freemarker/template/Configuration.html#setClassForTemplateLoading-java.lang.Class-java.lang.String-"><code>setClassForTemplateLoading(Class, String)</code></a> and
<a href="../../freemarker/template/Configuration.html#setClassLoaderForTemplateLoading-java.lang.ClassLoader-java.lang.String-"><code>setClassLoaderForTemplateLoading(ClassLoader, String)</code></a> too.)
<li><a href="../../freemarker/template/Configuration.html#setDefaultEncoding-java.lang.String-"><code>default_encoding</code></a>: The default value is system dependent, which makes it
fragile on servers, so it should be set explicitly, like to "UTF-8" nowadays.
<li><a href="../../freemarker/template/Configuration.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-"><code>template_exception_handler</code></a>: For developing
HTML pages, the most convenient value is <a href="../../freemarker/template/TemplateExceptionHandler.html#HTML_DEBUG_HANDLER"><code>TemplateExceptionHandler.HTML_DEBUG_HANDLER</code></a>. For production,
<a href="../../freemarker/template/TemplateExceptionHandler.html#RETHROW_HANDLER"><code>TemplateExceptionHandler.RETHROW_HANDLER</code></a> is safer to use.
<!-- 2.4: recommend the new object wrapper here -->
</ul>
<p>A <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object is thread-safe only after you have stopped modifying the configuration settings,
and you have <b>safely published</b> it (see JSR 133 and related literature) to other threads. Generally, you set
everything directly after you have instantiated the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object, then you don't change the settings
anymore, so then it's safe to make it accessible (again, via a "safe publication" technique) from multiple threads.
The methods that aren't for modifying settings, like <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>getTemplate(String)</code></a>, are thread-safe.</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>
<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 int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#ANGLE_BRACKET_TAG_SYNTAX">ANGLE_BRACKET_TAG_SYNTAX</a></span></code>
<div class="block">For example <code>&lt;#if x&gt;&lt;@foo /&gt;&lt;/#if&gt;</code></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION">AUTO_DETECT_NAMING_CONVENTION</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#AUTO_DETECT_TAG_SYNTAX">AUTO_DETECT_TAG_SYNTAX</a></span></code>
<div class="block">The parser decides between <a href="../../freemarker/template/Configuration.html#ANGLE_BRACKET_TAG_SYNTAX"><code>ANGLE_BRACKET_TAG_SYNTAX</code></a> and <a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_TAG_SYNTAX"><code>SQUARE_BRACKET_TAG_SYNTAX</code></a> based on the
first tag (like <code>[#if x]</code> or <code>&lt;#if x&gt;</code>) it mets.</div>
</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/Configuration.html#AUTO_ESCAPING_POLICY_KEY">AUTO_ESCAPING_POLICY_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#AUTO_ESCAPING_POLICY_KEY_CAMEL_CASE">AUTO_ESCAPING_POLICY_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#AUTO_ESCAPING_POLICY_KEY_SNAKE_CASE">AUTO_ESCAPING_POLICY_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#AUTO_IMPORT_KEY">AUTO_IMPORT_KEY</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_SNAKE_CASE"><code>Configurable.AUTO_IMPORT_KEY_SNAKE_CASE</code></a> instead.</span></div>
</div>
</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/Configuration.html#AUTO_IMPORT_KEY_CAMEL_CASE">AUTO_IMPORT_KEY_CAMEL_CASE</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_CAMEL_CASE"><code>Configurable.AUTO_IMPORT_KEY_CAMEL_CASE</code></a> instead.</span></div>
</div>
</td>
</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/Configuration.html#AUTO_IMPORT_KEY_SNAKE_CASE">AUTO_IMPORT_KEY_SNAKE_CASE</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_SNAKE_CASE"><code>Configurable.AUTO_IMPORT_KEY_SNAKE_CASE</code></a> instead.</span></div>
</div>
</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/Configuration.html#AUTO_INCLUDE_KEY">AUTO_INCLUDE_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#AUTO_INCLUDE_KEY_CAMEL_CASE">AUTO_INCLUDE_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#AUTO_INCLUDE_KEY_SNAKE_CASE">AUTO_INCLUDE_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#CACHE_STORAGE_KEY">CACHE_STORAGE_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#CACHE_STORAGE_KEY_CAMEL_CASE">CACHE_STORAGE_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#CACHE_STORAGE_KEY_SNAKE_CASE">CACHE_STORAGE_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#CAMEL_CASE_NAMING_CONVENTION">CAMEL_CASE_NAMING_CONVENTION</a></span></code>&nbsp;</td>
</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/Configuration.html#DEFAULT_ENCODING_KEY">DEFAULT_ENCODING_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#DEFAULT_ENCODING_KEY_CAMEL_CASE">DEFAULT_ENCODING_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#DEFAULT_ENCODING_KEY_SNAKE_CASE">DEFAULT_ENCODING_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#DEFAULT_INCOMPATIBLE_ENHANCEMENTS">DEFAULT_INCOMPATIBLE_ENHANCEMENTS</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#DEFAULT_INCOMPATIBLE_IMPROVEMENTS"><code>DEFAULT_INCOMPATIBLE_IMPROVEMENTS</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#DEFAULT_INCOMPATIBLE_IMPROVEMENTS">DEFAULT_INCOMPATIBLE_IMPROVEMENTS</a></span></code>
<div class="block">The default of <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a>, currently <a href="../../freemarker/template/Configuration.html#VERSION_2_3_0"><code>VERSION_2_3_0</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#DISABLE_AUTO_ESCAPING_POLICY">DISABLE_AUTO_ESCAPING_POLICY</a></span></code>
<div class="block">Don't enable auto-escaping, regardless of what the <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> is.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#DOLLAR_INTERPOLATION_SYNTAX">DOLLAR_INTERPOLATION_SYNTAX</a></span></code>
<div class="block"><code>${expression}</code> only (not <code>#{expression; numFormat}</code>) @since 2.3.28</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY">ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</a></span></code>
<div class="block">Enable auto-escaping if the output format supports it and <a href="../../freemarker/core/MarkupOutputFormat.html#isAutoEscapedByDefault--"><code>MarkupOutputFormat.isAutoEscapedByDefault()</code></a> is
<code>true</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY">ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY</a></span></code>
<div class="block">Enable auto-escaping if the <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> supports it.</div>
</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/Configuration.html#FALLBACK_ON_NULL_LOOP_VARIABLE_KEY">FALLBACK_ON_NULL_LOOP_VARIABLE_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation.</div>
</td>
</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/Configuration.html#FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_CAMEL_CASE">FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_SNAKE_CASE">FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#INCOMPATIBLE_ENHANCEMENTS">INCOMPATIBLE_ENHANCEMENTS</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY"><code>INCOMPATIBLE_IMPROVEMENTS_KEY</code></a> instead.</span></div>
</div>
</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/Configuration.html#INCOMPATIBLE_IMPROVEMENTS">INCOMPATIBLE_IMPROVEMENTS</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY"><code>INCOMPATIBLE_IMPROVEMENTS_KEY</code></a> instead.</span></div>
</div>
</td>
</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/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY">INCOMPATIBLE_IMPROVEMENTS_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE">INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE">INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#INTERPOLATION_SYNTAX_KEY">INTERPOLATION_SYNTAX_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#INTERPOLATION_SYNTAX_KEY_CAMEL_CASE">INTERPOLATION_SYNTAX_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#INTERPOLATION_SYNTAX_KEY_SNAKE_CASE">INTERPOLATION_SYNTAX_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#LEGACY_INTERPOLATION_SYNTAX">LEGACY_INTERPOLATION_SYNTAX</a></span></code>
<div class="block"><code>${expression}</code> and the deprecated <code>#{expression; numFormat}</code> @since 2.3.28</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION">LEGACY_NAMING_CONVENTION</a></span></code>&nbsp;</td>
</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/Configuration.html#LOCALIZED_LOOKUP_KEY">LOCALIZED_LOOKUP_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#LOCALIZED_LOOKUP_KEY_CAMEL_CASE">LOCALIZED_LOOKUP_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#LOCALIZED_LOOKUP_KEY_SNAKE_CASE">LOCALIZED_LOOKUP_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#NAMING_CONVENTION_KEY">NAMING_CONVENTION_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#NAMING_CONVENTION_KEY_CAMEL_CASE">NAMING_CONVENTION_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#NAMING_CONVENTION_KEY_SNAKE_CASE">NAMING_CONVENTION_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#OUTPUT_FORMAT_KEY">OUTPUT_FORMAT_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#OUTPUT_FORMAT_KEY_CAMEL_CASE">OUTPUT_FORMAT_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#OUTPUT_FORMAT_KEY_SNAKE_CASE">OUTPUT_FORMAT_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#PARSED_DEFAULT_INCOMPATIBLE_ENHANCEMENTS">PARSED_DEFAULT_INCOMPATIBLE_ENHANCEMENTS</a></span></code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#DEFAULT_INCOMPATIBLE_IMPROVEMENTS"><code>DEFAULT_INCOMPATIBLE_IMPROVEMENTS</code></a> instead.</span></div>
</div>
</td>
</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/Configuration.html#RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY">RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE">RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE">RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY">REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE">REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE">REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_INTERPOLATION_SYNTAX">SQUARE_BRACKET_INTERPOLATION_SYNTAX</a></span></code>
<div class="block"><code>[=expression]</code> instead of <code>${expression}</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_TAG_SYNTAX">SQUARE_BRACKET_TAG_SYNTAX</a></span></code>
<div class="block">For example <code>[#if x][@foo /][/#if]</code>.</div>
</td>
</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/Configuration.html#STRICT_SYNTAX_KEY">STRICT_SYNTAX_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#STRICT_SYNTAX_KEY_CAMEL_CASE">STRICT_SYNTAX_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#STRICT_SYNTAX_KEY_SNAKE_CASE">STRICT_SYNTAX_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#TAB_SIZE_KEY">TAB_SIZE_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation.</div>
</td>
</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/Configuration.html#TAB_SIZE_KEY_CAMEL_CASE">TAB_SIZE_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#TAB_SIZE_KEY_SNAKE_CASE">TAB_SIZE_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#TAG_SYNTAX_KEY">TAG_SYNTAX_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#TAG_SYNTAX_KEY_CAMEL_CASE">TAG_SYNTAX_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#TAG_SYNTAX_KEY_SNAKE_CASE">TAG_SYNTAX_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#TEMPLATE_CONFIGURATIONS_KEY">TEMPLATE_CONFIGURATIONS_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation.</div>
</td>
</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/Configuration.html#TEMPLATE_CONFIGURATIONS_KEY_CAMEL_CASE">TEMPLATE_CONFIGURATIONS_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#TEMPLATE_CONFIGURATIONS_KEY_SNAKE_CASE">TEMPLATE_CONFIGURATIONS_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#TEMPLATE_LOADER_KEY">TEMPLATE_LOADER_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#TEMPLATE_LOADER_KEY_CAMEL_CASE">TEMPLATE_LOADER_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#TEMPLATE_LOADER_KEY_SNAKE_CASE">TEMPLATE_LOADER_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#TEMPLATE_LOOKUP_STRATEGY_KEY">TEMPLATE_LOOKUP_STRATEGY_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#TEMPLATE_LOOKUP_STRATEGY_KEY_CAMEL_CASE">TEMPLATE_LOOKUP_STRATEGY_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#TEMPLATE_LOOKUP_STRATEGY_KEY_SNAKE_CASE">TEMPLATE_LOOKUP_STRATEGY_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#TEMPLATE_NAME_FORMAT_KEY">TEMPLATE_NAME_FORMAT_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</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/Configuration.html#TEMPLATE_NAME_FORMAT_KEY_CAMEL_CASE">TEMPLATE_NAME_FORMAT_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</td>
</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/Configuration.html#TEMPLATE_NAME_FORMAT_KEY_SNAKE_CASE">TEMPLATE_NAME_FORMAT_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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/Configuration.html#TEMPLATE_UPDATE_DELAY_KEY">TEMPLATE_UPDATE_DELAY_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#TEMPLATE_UPDATE_DELAY_KEY_CAMEL_CASE">TEMPLATE_UPDATE_DELAY_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#TEMPLATE_UPDATE_DELAY_KEY_SNAKE_CASE">TEMPLATE_UPDATE_DELAY_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_0">VERSION_2_3_0</a></span></code>
<div class="block">FreeMarker version 2.3.0 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_19">VERSION_2_3_19</a></span></code>
<div class="block">FreeMarker version 2.3.19 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_20">VERSION_2_3_20</a></span></code>
<div class="block">FreeMarker version 2.3.20 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_21">VERSION_2_3_21</a></span></code>
<div class="block">FreeMarker version 2.3.21 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_22">VERSION_2_3_22</a></span></code>
<div class="block">FreeMarker version 2.3.22 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_23">VERSION_2_3_23</a></span></code>
<div class="block">FreeMarker version 2.3.23 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_24">VERSION_2_3_24</a></span></code>
<div class="block">FreeMarker version 2.3.24 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_25">VERSION_2_3_25</a></span></code>
<div class="block">FreeMarker version 2.3.25 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_26">VERSION_2_3_26</a></span></code>
<div class="block">FreeMarker version 2.3.26 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_27">VERSION_2_3_27</a></span></code>
<div class="block">FreeMarker version 2.3.27 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_28">VERSION_2_3_28</a></span></code>
<div class="block">FreeMarker version 2.3.28 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_29">VERSION_2_3_29</a></span></code>
<div class="block">FreeMarker version 2.3.29 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_30">VERSION_2_3_30</a></span></code>
<div class="block">FreeMarker version 2.3.30 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_31">VERSION_2_3_31</a></span></code>
<div class="block">FreeMarker version 2.3.31 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#VERSION_2_3_32">VERSION_2_3_32</a></span></code>
<div class="block">FreeMarker version 2.3.32 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</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/Configuration.html#WHITESPACE_STRIPPING_KEY">WHITESPACE_STRIPPING_KEY</a></span></code>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
</td>
</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/Configuration.html#WHITESPACE_STRIPPING_KEY_CAMEL_CASE">WHITESPACE_STRIPPING_KEY_CAMEL_CASE</a></span></code>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name.</div>
</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/Configuration.html#WHITESPACE_STRIPPING_KEY_SNAKE_CASE">WHITESPACE_STRIPPING_KEY_SNAKE_CASE</a></span></code>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name.</div>
</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#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/Configuration.html#Configuration--">Configuration</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a> instead. Note that the version can be still modified later with
<a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a> (or
<a href="../../freemarker/core/Configurable.html#setSettings-java.util.Properties-"><code>Configurable.setSettings(Properties)</code></a>).</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-">Configuration</a></span>(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</code>
<div class="block">Creates a new instance and sets which of the non-backward-compatible bugfixes/improvements should be enabled.</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/Configuration.html#clearEncodingMap--">clearEncodingMap</a></span>()</code>
<div class="block">Clears language-to-encoding map.</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/Configuration.html#clearSharedVariables--">clearSharedVariables</a></span>()</code>
<div class="block">Removes all shared variables, except the predefined ones (compress, html_escape, etc.).</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/Configuration.html#clearTemplateCache--">clearTemplateCache</a></span>()</code>
<div class="block">Removes all entries from the template cache, thus forcing reloading of templates
on subsequent <code>getTemplate</code> calls.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#clone--">clone</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#doAutoImportsAndIncludes-freemarker.core.Environment-">doAutoImportsAndIncludes</a></span>(<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)</code>
<div class="block">Executes the auto-imports and auto-includes for the main template of this environment.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getAutoEscapingPolicy--">getAutoEscapingPolicy</a></span>()</code>
<div class="block">Getter pair of <a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>setAutoEscapingPolicy(int)</code></a></div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/cache/CacheStorage.html" title="interface in freemarker.cache">CacheStorage</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getCacheStorage--">getCacheStorage</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setCacheStorage-freemarker.cache.CacheStorage-"><code>setCacheStorage(CacheStorage)</code></a>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getCorrectedNameForUnknownSetting-java.lang.String-">getCorrectedNameForUnknownSetting</a></span>(java.lang.String&nbsp;name)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <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/Configuration.html#getDefaultConfiguration--">getDefaultConfiguration</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">The usage of the static singleton (the "default")
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instance can easily cause erroneous, unpredictable
behavior. This is because multiple independent software components may use
FreeMarker internally inside the same application, so they will interfere
because of the common <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instance. Each such component
should use its own private <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object instead, that it
typically creates with <code>new Configuration()</code> when the component
is initialized.</span></div>
</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getDefaultEncoding--">getDefaultEncoding</a></span>()</code>
<div class="block">Gets the default encoding for converting bytes to characters when
reading template files in a locale for which no explicit encoding
was specified.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getDefaultObjectWrapper-freemarker.template.Version-">getDefaultObjectWrapper</a></span>(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</code>
<div class="block">Returns the default object wrapper for a given "incompatible_improvements" version.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getEncoding-java.util.Locale-">getEncoding</a></span>(java.util.Locale&nbsp;locale)</code>
<div class="block">Gets the preferred character encoding for the given locale, or the
default encoding if no encoding is set explicitly for the specified
locale.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getFallbackOnNullLoopVariable--">getFallbackOnNullLoopVariable</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setFallbackOnNullLoopVariable-boolean-"><code>setFallbackOnNullLoopVariable(boolean)</code></a>.</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/Configuration.html#getIncompatibleEnhancements--">getIncompatibleEnhancements</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--">getIncompatibleImprovements</a></span>()</code>
<div class="block">See <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a>.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getInterpolationSyntax--">getInterpolationSyntax</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-"><code>setInterpolationSyntax(int)</code></a>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getLocalizedLookup--">getLocalizedLookup</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setLocalizedLookup-boolean-"><code>setLocalizedLookup(boolean)</code></a>.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getNamingConvention--">getNamingConvention</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setNamingConvention-int-"><code>setNamingConvention(int)</code></a>.</div>
</td>
</tr>
<tr id="i18" 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/Configuration.html#getOutputFormat--">getOutputFormat</a></span>()</code>
<div class="block">Getter pair of <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a></div>
</td>
</tr>
<tr id="i19" class="rowColor">
<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/Configuration.html#getOutputFormat-java.lang.String-">getOutputFormat</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Returns the output format for a name.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getParsedIncompatibleEnhancements--">getParsedIncompatibleEnhancements</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getRecognizeStandardFileExtensions--">getRecognizeStandardFileExtensions</a></span>()</code>
<div class="block">Getter pair of <a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a>.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>java.util.Collection&lt;? extends <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getRegisteredCustomOutputFormats--">getRegisteredCustomOutputFormats</a></span>()</code>
<div class="block">Getter pair of <a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>setRegisteredCustomOutputFormats(Collection)</code></a>.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getSettingNames-boolean-">getSettingNames</a></span>(boolean&nbsp;camelCase)</code>
<div class="block">Returns the valid <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> setting names.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getSharedVariable-java.lang.String-">getSharedVariable</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Gets a shared variable.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>java.util.Set</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getSharedVariableNames--">getSharedVariableNames</a></span>()</code>
<div class="block">Returns the set containing the names of all defined shared sharedVariables.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getStrictSyntaxMode--">getStrictSyntaxMode</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setStrictSyntaxMode-boolean-"><code>setStrictSyntaxMode(boolean)</code></a>.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>java.util.Set</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getSupportedBuiltInDirectiveNames--">getSupportedBuiltInDirectiveNames</a></span>()</code>
<div class="block">Same as <a href="../../freemarker/template/Configuration.html#getSupportedBuiltInDirectiveNames-int-"><code>getSupportedBuiltInDirectiveNames(int)</code></a> with argument <a href="../../freemarker/template/Configuration.html#getNamingConvention--"><code>getNamingConvention()</code></a>.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getSupportedBuiltInDirectiveNames-int-">getSupportedBuiltInDirectiveNames</a></span>(int&nbsp;namingConvention)</code>
<div class="block">Returns the names of the directives that are predefined by FreeMarker.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>java.util.Set</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getSupportedBuiltInNames--">getSupportedBuiltInNames</a></span>()</code>
<div class="block">Same as <a href="../../freemarker/template/Configuration.html#getSupportedBuiltInNames-int-"><code>getSupportedBuiltInNames(int)</code></a> with argument <a href="../../freemarker/template/Configuration.html#getNamingConvention--"><code>getNamingConvention()</code></a>.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getSupportedBuiltInNames-int-">getSupportedBuiltInNames</a></span>(int&nbsp;namingConvention)</code>
<div class="block">Returns the names of the supported "built-ins".</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getTabSize--">getTabSize</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTabSize-int-"><code>setTabSize(int)</code></a>.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getTagSyntax--">getTagSyntax</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTagSyntax-int-"><code>setTagSyntax(int)</code></a>.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><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/Configuration.html#getTemplate-java.lang.String-">getTemplate</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Retrieves the template with the given name from the template cache, loading it into the cache first if it's
missing/staled.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><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/Configuration.html#getTemplate-java.lang.String-java.util.Locale-">getTemplate</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale)</code>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, null, true, false)</code></a>.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><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/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-">getTemplate</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.Object&nbsp;customLookupCondition,
java.lang.String&nbsp;encoding,
boolean&nbsp;parseAsFTL,
boolean&nbsp;ignoreMissing)</code>
<div class="block">Retrieves the template with the given name (and according the specified further parameters) from the template
cache, loading it into the cache first if it's missing/staled.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><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/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.String-">getTemplate</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding)</code>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, encoding, true, false)</code></a>.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code><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/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.String-boolean-">getTemplate</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding,
boolean&nbsp;parseAsFTL)</code>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, encoding, parseAsFTL, false)</code></a>.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><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/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.String-boolean-boolean-">getTemplate</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding,
boolean&nbsp;parseAsFTL,
boolean&nbsp;ignoreMissing)</code>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, encoding, parseAsFTL, ignoreMissing)</code></a>.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code><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/Configuration.html#getTemplate-java.lang.String-java.lang.String-">getTemplate</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;encoding)</code>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, null, null, encoding, true, false)</code></a>.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache">TemplateConfigurationFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getTemplateConfigurations--">getTemplateConfigurations</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(TemplateConfigurationFactory)</code></a>.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache">TemplateLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getTemplateLoader--">getTemplateLoader</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a>.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache">TemplateLookupStrategy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getTemplateLookupStrategy--">getTemplateLookupStrategy</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-"><code>setTemplateLookupStrategy(TemplateLookupStrategy)</code></a>.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/cache/TemplateNameFormat.html" title="class in freemarker.cache">TemplateNameFormat</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getTemplateNameFormat--">getTemplateNameFormat</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateNameFormat-freemarker.cache.TemplateNameFormat-"><code>setTemplateNameFormat(TemplateNameFormat)</code></a>.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getTemplateUpdateDelayMilliseconds--">getTemplateUpdateDelayMilliseconds</a></span>()</code>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelayMilliseconds-long-"><code>setTemplateUpdateDelayMilliseconds(long)</code></a>.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getVersion--">getVersion</a></span>()</code>
<div class="block">Returns FreeMarker version information, most importantly the major.minor.micro version numbers;
do NOT use this as the value of the <code>incompatible_improvements</code> setting (as the parameter to
<a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a>), as then your application can break when you upgrade FreeMarker!
Use a constant value, like <a href="../../freemarker/template/Configuration.html#VERSION_2_3_28"><code>VERSION_2_3_28</code></a>, to protect your application from fixes/changes that aren't
entirely backward compatible.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getVersionNumber--">getVersionNumber</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#getVersion--"><code>getVersion()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#getWhitespaceStripping--">getWhitespaceStripping</a></span>()</code>
<div class="block">Gets whether the FTL parser will try to remove
superfluous white-space around certain FTL tags.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isAttemptExceptionReporterExplicitlySet--">isAttemptExceptionReporterExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-"><code>setAttemptExceptionReporter(AttemptExceptionReporter)</code></a> (or equivalent) was already called on
this instance.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isCacheStorageExplicitlySet--">isCacheStorageExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setCacheStorage-freemarker.cache.CacheStorage-"><code>setCacheStorage(CacheStorage)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isCFormatExplicitlySet--">isCFormatExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setCFormat-freemarker.core.CFormat-"><code>setCFormat(CFormat)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isDefaultEncodingExplicitlySet--">isDefaultEncodingExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setDefaultEncoding-java.lang.String-"><code>setDefaultEncoding(String)</code></a> (or equivalent) was already called on this instance, or it just holds the
default value.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isLocaleExplicitlySet--">isLocaleExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setLocale-java.util.Locale-"><code>setLocale(Locale)</code></a> (or equivalent) was already called on this instance, or it just holds the
default value.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isLogTemplateExceptionsExplicitlySet--">isLogTemplateExceptionsExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setLogTemplateExceptions-boolean-"><code>setLogTemplateExceptions(boolean)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isObjectWrapperExplicitlySet--">isObjectWrapperExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setObjectWrapper-freemarker.template.ObjectWrapper-"><code>setObjectWrapper(ObjectWrapper)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isOutputFormatExplicitlySet--">isOutputFormatExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isRecognizeStandardFileExtensionsExplicitlySet--">isRecognizeStandardFileExtensionsExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a> (or equivalent) was already called on this
instance.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isTemplateExceptionHandlerExplicitlySet--">isTemplateExceptionHandlerExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-"><code>setTemplateExceptionHandler(TemplateExceptionHandler)</code></a> (or equivalent) was already called on
this instance.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isTemplateLoaderExplicitlySet--">isTemplateLoaderExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isTemplateLookupStrategyExplicitlySet--">isTemplateLookupStrategyExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-"><code>setTemplateLookupStrategy(TemplateLookupStrategy)</code></a> (or equivalent) was already called on this
instance.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isTemplateNameFormatExplicitlySet--">isTemplateNameFormatExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateNameFormat-freemarker.cache.TemplateNameFormat-"><code>setTemplateNameFormat(TemplateNameFormat)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isTimeZoneExplicitlySet--">isTimeZoneExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTimeZone-java.util.TimeZone-"><code>setTimeZone(TimeZone)</code></a> (or equivalent) was already called on this instance, or it just holds the
default value.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#isWrapUncheckedExceptionsExplicitlySet--">isWrapUncheckedExceptionsExplicitlySet</a></span>()</code>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setWrapUncheckedExceptions-boolean-"><code>setWrapUncheckedExceptions(boolean)</code></a> (or equivalent) was already called on this instance.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#loadBuiltInEncodingMap--">loadBuiltInEncodingMap</a></span>()</code>
<div class="block">Loads a preset language-to-encoding map, similarly as if you have called
<a href="../../freemarker/template/Configuration.html#clearEncodingMap--"><code>clearEncodingMap()</code></a> and then did multiple <a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-"><code>setEncoding(Locale, String)</code></a> calls.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-">removeTemplateFromCache</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, thisCfg.getLocale(), null, thisCfg.getEncoding(thisCfg.getLocale()), true)</code></a>.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-">removeTemplateFromCache</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale)</code>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, locale, null, thisCfg.getEncoding(locale), true)</code></a>.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-">removeTemplateFromCache</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.Object&nbsp;customLookupCondition,
java.lang.String&nbsp;encoding,
boolean&nbsp;parse)</code>
<div class="block">Removes a template from the template cache, hence forcing the re-loading
of it when it's next time requested.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.String-">removeTemplateFromCache</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding)</code>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, locale, null, encoding, true)</code></a>.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.String-boolean-">removeTemplateFromCache</a></span>(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding,
boolean&nbsp;parse)</code>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, locale, null, encoding, parse)</code></a>.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.lang.String-">removeTemplateFromCache</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;encoding)</code>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, thisCfg.getLocale(), null, encoding, true)</code></a>.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setAllSharedVariables-freemarker.template.TemplateHashModelEx-">setAllSharedVariables</a></span>(<a href="../../freemarker/template/TemplateHashModelEx.html" title="interface in freemarker.template">TemplateHashModelEx</a>&nbsp;hash)</code>
<div class="block">Adds all object in the hash as shared variable to the configuration; it's like doing several
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-java.lang.Object-"><code>setSharedVariable(String, Object)</code></a> calls, one for each hash entry.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-">setAttemptExceptionReporter</a></span>(<a href="../../freemarker/template/AttemptExceptionReporter.html" title="interface in freemarker.template">AttemptExceptionReporter</a>&nbsp;attemptExceptionReporter)</code>
<div class="block">Specifies how exceptions handled (and hence suppressed) by an <code>#attempt</code> blocks will be logged or otherwise
reported.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-">setAutoEscapingPolicy</a></span>(int&nbsp;autoEscapingPolicy)</code>
<div class="block">Sets when auto-escaping should be enabled depending on the current <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">output format</a>;
default is <a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</code></a>.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setCacheStorage-freemarker.cache.CacheStorage-">setCacheStorage</a></span>(<a href="../../freemarker/cache/CacheStorage.html" title="interface in freemarker.cache">CacheStorage</a>&nbsp;cacheStorage)</code>
<div class="block">Sets the <a href="../../freemarker/cache/CacheStorage.html" title="interface in freemarker.cache"><code>CacheStorage</code></a> used for caching <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a>-s;
the earlier content of the template cache will be dropt.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setCFormat-freemarker.core.CFormat-">setCFormat</a></span>(<a href="../../freemarker/core/CFormat.html" title="class in freemarker.core">CFormat</a>&nbsp;cFormat)</code>
<div class="block">Sets the format (usually a computer language) used for <code>?c</code>, <code>?cn</code>, and for the
<code>"c"</code> (<code>"computer"</code> before 2.3.32) <a href="../../freemarker/core/Configurable.html#setNumberFormat-java.lang.String-"><code>number_format</code></a>, and the
<code>"c"</code> <a href="../../freemarker/core/Configurable.html#setBooleanFormat-java.lang.String-"><code>boolean_format</code></a>.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setClassForTemplateLoading-java.lang.Class-java.lang.String-">setClassForTemplateLoading</a></span>(java.lang.Class&nbsp;resourceLoaderClass,
java.lang.String&nbsp;basePackagePath)</code>
<div class="block">Sets the class whose <code>Class.getResource(String)</code> method will be used to load templates, from the inside the
package specified.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setClassLoaderForTemplateLoading-java.lang.ClassLoader-java.lang.String-">setClassLoaderForTemplateLoading</a></span>(java.lang.ClassLoader&nbsp;classLoader,
java.lang.String&nbsp;basePackagePath)</code>
<div class="block">Sets the <code>ClassLoader</code> whose <code>ClassLoader.getResource(String)</code> method will be used to load templates,
from the inside the package specified.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setDefaultConfiguration-freemarker.template.Configuration-">setDefaultConfiguration</a></span>(<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;config)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Using the "default" <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instance can
easily lead to erroneous, unpredictable behaviour.
See more <a href="../../freemarker/template/Configuration.html#getDefaultConfiguration--"><code>here...</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setDefaultEncoding-java.lang.String-">setDefaultEncoding</a></span>(java.lang.String&nbsp;encoding)</code>
<div class="block">Sets the charset used for decoding byte sequences to character sequences when
reading template files in a locale for which no explicit encoding
was specified via <a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-"><code>setEncoding(Locale, String)</code></a>.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setDirectoryForTemplateLoading-java.io.File-">setDirectoryForTemplateLoading</a></span>(java.io.File&nbsp;dir)</code>
<div class="block">Sets the file system directory from which to load templates.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-">setEncoding</a></span>(java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding)</code>
<div class="block">Sets the character set encoding to use for templates of
a given locale.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setFallbackOnNullLoopVariable-boolean-">setFallbackOnNullLoopVariable</a></span>(boolean&nbsp;fallbackOnNullLoopVariable)</code>
<div class="block">Specifies the behavior when reading a loop variable (like <code>i</code> in <code>&lt;#list items as i&gt;</code>, or in
<code>&lt;@myMacro items; i&gt;</code>) that's <code>null</code> (missing); if <code>true</code>, FreeMarker will look for a variable
with the same name in higher variable scopes, or if <code>false</code> the variable will be simply <code>null</code>
(missing).</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setIncompatibleEnhancements-java.lang.String-">setIncompatibleEnhancements</a></span>(java.lang.String&nbsp;version)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a>, or
as last chance, <a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-">setIncompatibleImprovements</a></span>(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</code>
<div class="block">Use <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a> instead if possible; see the meaning of the parameter there.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-">setInterpolationSyntax</a></span>(int&nbsp;interpolationSyntax)</code>
<div class="block">Determines the interpolation syntax (like <code>${x}</code> VS <code>[=x]</code>) of the template files.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setLocale-java.util.Locale-">setLocale</a></span>(java.util.Locale&nbsp;locale)</code>
<div class="block">Sets the locale used for number and date formatting (among others), also the locale used for searching
localized template variations when no locale was explicitly requested.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setLocalizedLookup-boolean-">setLocalizedLookup</a></span>(boolean&nbsp;localizedLookup)</code>
<div class="block">Enables/disables localized template lookup.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setLogTemplateExceptions-boolean-">setLogTemplateExceptions</a></span>(boolean&nbsp;value)</code>
<div class="block">Specifies if <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>-s thrown by template processing are logged by FreeMarker or not.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setNamingConvention-int-">setNamingConvention</a></span>(int&nbsp;namingConvention)</code>
<div class="block">Sets the naming convention used for the identifiers that are part of the template language.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setObjectWrapper-freemarker.template.ObjectWrapper-">setObjectWrapper</a></span>(<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;objectWrapper)</code>
<div class="block">Sets the object wrapper used to wrap objects to <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-">setOutputFormat</a></span>(<a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a>&nbsp;outputFormat)</code>
<div class="block">Sets the default output format.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-">setRecognizeStandardFileExtensions</a></span>(boolean&nbsp;recognizeStandardFileExtensions)</code>
<div class="block">Sets if the "file" extension part of the source name (<a href="../../freemarker/template/Template.html#getSourceName--"><code>Template.getSourceName()</code></a>) will influence certain
parsing settings.</div>
</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-">setRegisteredCustomOutputFormats</a></span>(java.util.Collection&lt;? extends <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a>&gt;&nbsp;registeredCustomOutputFormats)</code>
<div class="block">Sets the custom output formats that can be referred by their unique name (<a href="../../freemarker/core/OutputFormat.html#getName--"><code>OutputFormat.getName()</code></a>) from
templates.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setServletContextForTemplateLoading-java.lang.Object-java.lang.String-">setServletContextForTemplateLoading</a></span>(java.lang.Object&nbsp;servletContext,
java.lang.String&nbsp;path)</code>
<div class="block">Sets the servlet context from which to load templates.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-">setSetting</a></span>(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)</code>
<div class="block">Sets a FreeMarker setting by a name and string value.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-java.lang.Object-">setSharedVariable</a></span>(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value)</code>
<div class="block">Adds shared variable to the configuration; It uses <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a> to wrap the
<code>value</code>, so it's important that the object wrapper is set before this.</div>
</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-freemarker.template.TemplateModel-">setSharedVariable</a></span>(java.lang.String&nbsp;name,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;tm)</code>
<div class="block">Adds a shared variable to the configuration.</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setSharedVariables-java.util.Map-">setSharedVariables</a></span>(java.util.Map&lt;java.lang.String,?&gt;&nbsp;map)</code>
<div class="block">Replaces all shared variables (removes all previously added ones).</div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setSharedVaribles-java.util.Map-">setSharedVaribles</a></span>(java.util.Map&nbsp;map)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#setSharedVariables-java.util.Map-"><code>setSharedVariables(Map)</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setStrictSyntaxMode-boolean-">setStrictSyntaxMode</a></span>(boolean&nbsp;b)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Only <code>true</code> (the default) value will be supported sometimes in the future.</span></div>
</div>
</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTabSize-int-">setTabSize</a></span>(int&nbsp;tabSize)</code>
<div class="block">Sets the assumed display width of the tab character (ASCII 9), which influences the column number shown in error
messages (or the column number you get through other API-s).</div>
</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTagSyntax-int-">setTagSyntax</a></span>(int&nbsp;tagSyntax)</code>
<div class="block">Determines the tag syntax (like <code>&lt;#if x&gt;</code> VS <code>[#if x]</code>) of the template files
that has no <code>#ftl</code> header to decide that.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-">setTemplateConfigurations</a></span>(<a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache">TemplateConfigurationFactory</a>&nbsp;templateConfigurations)</code>
<div class="block">Sets a <a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache"><code>TemplateConfigurationFactory</code></a> that will configure individual templates where their settings differ
from those coming from the common <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object.</div>
</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-">setTemplateExceptionHandler</a></span>(<a href="../../freemarker/template/TemplateExceptionHandler.html" title="interface in freemarker.template">TemplateExceptionHandler</a>&nbsp;templateExceptionHandler)</code>
<div class="block">Sets the exception handler used to handle exceptions occurring inside templates.</div>
</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-">setTemplateLoader</a></span>(<a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache">TemplateLoader</a>&nbsp;templateLoader)</code>
<div class="block">Sets a <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that is used to look up and load templates;
as a side effect the template cache will be emptied (unless the new and the old values are the same).</div>
</td>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-">setTemplateLookupStrategy</a></span>(<a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache">TemplateLookupStrategy</a>&nbsp;templateLookupStrategy)</code>
<div class="block">Sets the <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a> that is used to look up templates based on the requested name; as a side
effect the template cache will be emptied.</div>
</td>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTemplateNameFormat-freemarker.cache.TemplateNameFormat-">setTemplateNameFormat</a></span>(<a href="../../freemarker/cache/TemplateNameFormat.html" title="class in freemarker.cache">TemplateNameFormat</a>&nbsp;templateNameFormat)</code>
<div class="block">Sets the template name format used.</div>
</td>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelay-int-">setTemplateUpdateDelay</a></span>(int&nbsp;seconds)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelayMilliseconds-long-"><code>setTemplateUpdateDelayMilliseconds(long)</code></a> instead, because the time granularity of this method
is often misunderstood to be milliseconds.</span></div>
</div>
</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelayMilliseconds-long-">setTemplateUpdateDelayMilliseconds</a></span>(long&nbsp;millis)</code>
<div class="block">Sets the time in milliseconds that must elapse before checking whether there is a newer version of a template
"file" than the cached one.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setTimeZone-java.util.TimeZone-">setTimeZone</a></span>(java.util.TimeZone&nbsp;timeZone)</code>
<div class="block">Sets the time zone to use when formatting date/time values.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setWhitespaceStripping-boolean-">setWhitespaceStripping</a></span>(boolean&nbsp;b)</code>
<div class="block">Sets whether the FTL parser will try to remove
superfluous white-space around certain FTL tags.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#setWrapUncheckedExceptions-boolean-">setWrapUncheckedExceptions</a></span>(boolean&nbsp;value)</code>
<div class="block">Specifies if unchecked exceptions thrown during expression evaluation or during executing custom directives (and
transform) will be wrapped into <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>-s, or will bubble up to the caller of
<a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-"><code>Template.process(Object, Writer, ObjectWrapper)</code></a> as is.</div>
</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetAttemptExceptionReporter--">unsetAttemptExceptionReporter</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetCacheStorage--">unsetCacheStorage</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetCFormat--">unsetCFormat</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetDefaultEncoding--">unsetDefaultEncoding</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetLocale--">unsetLocale</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetLogTemplateExceptions--">unsetLogTemplateExceptions</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetObjectWrapper--">unsetObjectWrapper</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetOutputFormat--">unsetOutputFormat</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetRecognizeStandardFileExtensions--">unsetRecognizeStandardFileExtensions</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetTemplateExceptionHandler--">unsetTemplateExceptionHandler</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetTemplateLoader--">unsetTemplateLoader</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetTemplateLookupStrategy--">unsetTemplateLookupStrategy</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetTemplateNameFormat--">unsetTemplateNameFormat</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetTimeZone--">unsetTimeZone</a></span>()</code>
<div class="block">Resets the setting to its default, as if it was never set.</div>
</td>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/Configuration.html#unsetWrapUncheckedExceptions--">unsetWrapUncheckedExceptions</a></span>()</code>&nbsp;</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#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#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#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#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#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#setNewBuiltinClassResolver-freemarker.core.TemplateClassResolver-">setNewBuiltinClassResolver</a>, <a href="../../freemarker/core/Configurable.html#setNumberFormat-java.lang.String-">setNumberFormat</a>, <a href="../../freemarker/core/Configurable.html#setOutputEncoding-java.lang.String-">setOutputEncoding</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#setTimeFormat-java.lang.String-">setTimeFormat</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#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, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.freemarker.core.ParserConfiguration">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;freemarker.core.<a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></h3>
<code><a href="../../freemarker/core/ParserConfiguration.html#getArithmeticEngine--">getArithmeticEngine</a></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_ENCODING_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_ENCODING_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String DEFAULT_ENCODING_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.DEFAULT_ENCODING_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_ENCODING_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_ENCODING_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String DEFAULT_ENCODING_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.DEFAULT_ENCODING_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_ENCODING_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_ENCODING_KEY</h4>
<pre>public static final&nbsp;java.lang.String DEFAULT_ENCODING_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.DEFAULT_ENCODING_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCALIZED_LOOKUP_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCALIZED_LOOKUP_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String LOCALIZED_LOOKUP_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.LOCALIZED_LOOKUP_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCALIZED_LOOKUP_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCALIZED_LOOKUP_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String LOCALIZED_LOOKUP_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.LOCALIZED_LOOKUP_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOCALIZED_LOOKUP_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOCALIZED_LOOKUP_KEY</h4>
<pre>public static final&nbsp;java.lang.String LOCALIZED_LOOKUP_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.LOCALIZED_LOOKUP_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STRICT_SYNTAX_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRICT_SYNTAX_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String STRICT_SYNTAX_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.STRICT_SYNTAX_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STRICT_SYNTAX_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRICT_SYNTAX_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String STRICT_SYNTAX_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.STRICT_SYNTAX_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STRICT_SYNTAX_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STRICT_SYNTAX_KEY</h4>
<pre>public static final&nbsp;java.lang.String STRICT_SYNTAX_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.STRICT_SYNTAX_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="WHITESPACE_STRIPPING_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WHITESPACE_STRIPPING_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String WHITESPACE_STRIPPING_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.WHITESPACE_STRIPPING_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="WHITESPACE_STRIPPING_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WHITESPACE_STRIPPING_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String WHITESPACE_STRIPPING_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.WHITESPACE_STRIPPING_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="WHITESPACE_STRIPPING_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WHITESPACE_STRIPPING_KEY</h4>
<pre>public static final&nbsp;java.lang.String WHITESPACE_STRIPPING_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.WHITESPACE_STRIPPING_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OUTPUT_FORMAT_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OUTPUT_FORMAT_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String OUTPUT_FORMAT_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.OUTPUT_FORMAT_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OUTPUT_FORMAT_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OUTPUT_FORMAT_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String OUTPUT_FORMAT_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.OUTPUT_FORMAT_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="OUTPUT_FORMAT_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>OUTPUT_FORMAT_KEY</h4>
<pre>public static final&nbsp;java.lang.String OUTPUT_FORMAT_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.OUTPUT_FORMAT_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY</h4>
<pre>public static final&nbsp;java.lang.String RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY</h4>
<pre>public static final&nbsp;java.lang.String REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_ESCAPING_POLICY_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_ESCAPING_POLICY_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String AUTO_ESCAPING_POLICY_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_ESCAPING_POLICY_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_ESCAPING_POLICY_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_ESCAPING_POLICY_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String AUTO_ESCAPING_POLICY_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_ESCAPING_POLICY_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_ESCAPING_POLICY_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_ESCAPING_POLICY_KEY</h4>
<pre>public static final&nbsp;java.lang.String AUTO_ESCAPING_POLICY_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_ESCAPING_POLICY_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CACHE_STORAGE_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CACHE_STORAGE_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String CACHE_STORAGE_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.CACHE_STORAGE_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CACHE_STORAGE_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CACHE_STORAGE_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String CACHE_STORAGE_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.CACHE_STORAGE_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CACHE_STORAGE_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CACHE_STORAGE_KEY</h4>
<pre>public static final&nbsp;java.lang.String CACHE_STORAGE_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.CACHE_STORAGE_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_UPDATE_DELAY_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_UPDATE_DELAY_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_UPDATE_DELAY_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_UPDATE_DELAY_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_UPDATE_DELAY_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_UPDATE_DELAY_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_UPDATE_DELAY_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_UPDATE_DELAY_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_UPDATE_DELAY_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_UPDATE_DELAY_KEY</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_UPDATE_DELAY_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_UPDATE_DELAY_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_IMPORT_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_IMPORT_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String AUTO_IMPORT_KEY_SNAKE_CASE</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_SNAKE_CASE"><code>Configurable.AUTO_IMPORT_KEY_SNAKE_CASE</code></a> instead.</span></div>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_IMPORT_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_IMPORT_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_IMPORT_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String AUTO_IMPORT_KEY_CAMEL_CASE</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_CAMEL_CASE"><code>Configurable.AUTO_IMPORT_KEY_CAMEL_CASE</code></a> instead.</span></div>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_IMPORT_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_IMPORT_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_IMPORT_KEY</h4>
<pre>public static final&nbsp;java.lang.String AUTO_IMPORT_KEY</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/core/Configurable.html#AUTO_IMPORT_KEY_SNAKE_CASE"><code>Configurable.AUTO_IMPORT_KEY_SNAKE_CASE</code></a> instead.</span></div>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_IMPORT_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_INCLUDE_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_INCLUDE_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String AUTO_INCLUDE_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_INCLUDE_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_INCLUDE_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_INCLUDE_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String AUTO_INCLUDE_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_INCLUDE_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_INCLUDE_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_INCLUDE_KEY</h4>
<pre>public static final&nbsp;java.lang.String AUTO_INCLUDE_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_INCLUDE_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TAG_SYNTAX_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TAG_SYNTAX_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String TAG_SYNTAX_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TAG_SYNTAX_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TAG_SYNTAX_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TAG_SYNTAX_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String TAG_SYNTAX_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TAG_SYNTAX_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TAG_SYNTAX_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TAG_SYNTAX_KEY</h4>
<pre>public static final&nbsp;java.lang.String TAG_SYNTAX_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TAG_SYNTAX_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INTERPOLATION_SYNTAX_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTERPOLATION_SYNTAX_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String INTERPOLATION_SYNTAX_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.28</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INTERPOLATION_SYNTAX_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INTERPOLATION_SYNTAX_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTERPOLATION_SYNTAX_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String INTERPOLATION_SYNTAX_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.28</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INTERPOLATION_SYNTAX_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INTERPOLATION_SYNTAX_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INTERPOLATION_SYNTAX_KEY</h4>
<pre>public static final&nbsp;java.lang.String INTERPOLATION_SYNTAX_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INTERPOLATION_SYNTAX_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NAMING_CONVENTION_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NAMING_CONVENTION_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String NAMING_CONVENTION_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.NAMING_CONVENTION_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NAMING_CONVENTION_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NAMING_CONVENTION_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String NAMING_CONVENTION_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.NAMING_CONVENTION_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NAMING_CONVENTION_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NAMING_CONVENTION_KEY</h4>
<pre>public static final&nbsp;java.lang.String NAMING_CONVENTION_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.NAMING_CONVENTION_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TAB_SIZE_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TAB_SIZE_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String TAB_SIZE_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.25</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TAB_SIZE_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TAB_SIZE_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TAB_SIZE_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String TAB_SIZE_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.25</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TAB_SIZE_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TAB_SIZE_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TAB_SIZE_KEY</h4>
<pre>public static final&nbsp;java.lang.String TAB_SIZE_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation. @since 2.3.25</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TAB_SIZE_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_LOADER_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_LOADER_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_LOADER_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_LOADER_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_LOADER_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_LOADER_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_LOADER_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_LOADER_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_LOADER_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_LOADER_KEY</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_LOADER_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_LOADER_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_LOOKUP_STRATEGY_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_LOOKUP_STRATEGY_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_LOOKUP_STRATEGY_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_LOOKUP_STRATEGY_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_LOOKUP_STRATEGY_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_LOOKUP_STRATEGY_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_LOOKUP_STRATEGY_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_LOOKUP_STRATEGY_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_LOOKUP_STRATEGY_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_LOOKUP_STRATEGY_KEY</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_LOOKUP_STRATEGY_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_LOOKUP_STRATEGY_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_NAME_FORMAT_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_NAME_FORMAT_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_NAME_FORMAT_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_NAME_FORMAT_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_NAME_FORMAT_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_NAME_FORMAT_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_NAME_FORMAT_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_NAME_FORMAT_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_NAME_FORMAT_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_NAME_FORMAT_KEY</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_NAME_FORMAT_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_NAME_FORMAT_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_CONFIGURATIONS_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_CONFIGURATIONS_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_CONFIGURATIONS_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_CONFIGURATIONS_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_CONFIGURATIONS_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_CONFIGURATIONS_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_CONFIGURATIONS_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_CONFIGURATIONS_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="TEMPLATE_CONFIGURATIONS_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE_CONFIGURATIONS_KEY</h4>
<pre>public static final&nbsp;java.lang.String TEMPLATE_CONFIGURATIONS_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation. @since 2.3.24</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.TEMPLATE_CONFIGURATIONS_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.23</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INCOMPATIBLE_IMPROVEMENTS_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INCOMPATIBLE_IMPROVEMENTS_KEY</h4>
<pre>public static final&nbsp;java.lang.String INCOMPATIBLE_IMPROVEMENTS_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation due to backward compatibility constraints.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INCOMPATIBLE_IMPROVEMENTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INCOMPATIBLE_IMPROVEMENTS</h4>
<pre>@Deprecated
public static final&nbsp;java.lang.String INCOMPATIBLE_IMPROVEMENTS</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY"><code>INCOMPATIBLE_IMPROVEMENTS_KEY</code></a> instead.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INCOMPATIBLE_ENHANCEMENTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INCOMPATIBLE_ENHANCEMENTS</h4>
<pre>@Deprecated
public static final&nbsp;java.lang.String INCOMPATIBLE_ENHANCEMENTS</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY"><code>INCOMPATIBLE_IMPROVEMENTS_KEY</code></a> instead.</span></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.INCOMPATIBLE_ENHANCEMENTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_SNAKE_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_SNAKE_CASE</h4>
<pre>public static final&nbsp;java.lang.String FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_SNAKE_CASE</pre>
<div class="block">Legacy, snake case (<code>like_this</code>) variation of the setting name. @since 2.3.29</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_SNAKE_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_CAMEL_CASE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_CAMEL_CASE</h4>
<pre>public static final&nbsp;java.lang.String FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_CAMEL_CASE</pre>
<div class="block">Modern, camel case (<code>likeThis</code>) variation of the setting name. @since 2.3.29</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.FALLBACK_ON_NULL_LOOP_VARIABLE_KEY_CAMEL_CASE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FALLBACK_ON_NULL_LOOP_VARIABLE_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FALLBACK_ON_NULL_LOOP_VARIABLE_KEY</h4>
<pre>public static final&nbsp;java.lang.String FALLBACK_ON_NULL_LOOP_VARIABLE_KEY</pre>
<div class="block">Alias to the <code>..._SNAKE_CASE</code> variation. @since 2.3.25</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.FALLBACK_ON_NULL_LOOP_VARIABLE_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_DETECT_TAG_SYNTAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_DETECT_TAG_SYNTAX</h4>
<pre>public static final&nbsp;int AUTO_DETECT_TAG_SYNTAX</pre>
<div class="block">The parser decides between <a href="../../freemarker/template/Configuration.html#ANGLE_BRACKET_TAG_SYNTAX"><code>ANGLE_BRACKET_TAG_SYNTAX</code></a> and <a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_TAG_SYNTAX"><code>SQUARE_BRACKET_TAG_SYNTAX</code></a> based on the
first tag (like <code>[#if x]</code> or <code>&lt;#if x&gt;</code>) it mets. Note that <code>[=...]</code> is <em>not</em> a tag, but
an interpolation, so it's not used for tag syntax auto-detection.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_DETECT_TAG_SYNTAX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ANGLE_BRACKET_TAG_SYNTAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ANGLE_BRACKET_TAG_SYNTAX</h4>
<pre>public static final&nbsp;int ANGLE_BRACKET_TAG_SYNTAX</pre>
<div class="block">For example <code>&lt;#if x&gt;&lt;@foo /&gt;&lt;/#if&gt;</code></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.ANGLE_BRACKET_TAG_SYNTAX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SQUARE_BRACKET_TAG_SYNTAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SQUARE_BRACKET_TAG_SYNTAX</h4>
<pre>public static final&nbsp;int SQUARE_BRACKET_TAG_SYNTAX</pre>
<div class="block">For example <code>[#if x][@foo /][/#if]</code>.
It does <em>not</em> change <code>${x}</code> to <code>[=x]</code>; that's square bracket <em>interpolation</em>
syntax (<a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_INTERPOLATION_SYNTAX"><code>SQUARE_BRACKET_INTERPOLATION_SYNTAX</code></a>).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.SQUARE_BRACKET_TAG_SYNTAX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LEGACY_INTERPOLATION_SYNTAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LEGACY_INTERPOLATION_SYNTAX</h4>
<pre>public static final&nbsp;int LEGACY_INTERPOLATION_SYNTAX</pre>
<div class="block"><code>${expression}</code> and the deprecated <code>#{expression; numFormat}</code> @since 2.3.28</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.LEGACY_INTERPOLATION_SYNTAX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DOLLAR_INTERPOLATION_SYNTAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOLLAR_INTERPOLATION_SYNTAX</h4>
<pre>public static final&nbsp;int DOLLAR_INTERPOLATION_SYNTAX</pre>
<div class="block"><code>${expression}</code> only (not <code>#{expression; numFormat}</code>) @since 2.3.28</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.DOLLAR_INTERPOLATION_SYNTAX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SQUARE_BRACKET_INTERPOLATION_SYNTAX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SQUARE_BRACKET_INTERPOLATION_SYNTAX</h4>
<pre>public static final&nbsp;int SQUARE_BRACKET_INTERPOLATION_SYNTAX</pre>
<div class="block"><code>[=expression]</code> instead of <code>${expression}</code>.
It does <em>not</em> change <code>&lt;#if x&gt;</code> to <code>[#if x]</code>; that's square bracket <em>tag</em> syntax
(<a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_TAG_SYNTAX"><code>SQUARE_BRACKET_TAG_SYNTAX</code></a>).</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.28</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTO_DETECT_NAMING_CONVENTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AUTO_DETECT_NAMING_CONVENTION</h4>
<pre>public static final&nbsp;int AUTO_DETECT_NAMING_CONVENTION</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.AUTO_DETECT_NAMING_CONVENTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LEGACY_NAMING_CONVENTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LEGACY_NAMING_CONVENTION</h4>
<pre>public static final&nbsp;int LEGACY_NAMING_CONVENTION</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.LEGACY_NAMING_CONVENTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CAMEL_CASE_NAMING_CONVENTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CAMEL_CASE_NAMING_CONVENTION</h4>
<pre>public static final&nbsp;int CAMEL_CASE_NAMING_CONVENTION</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.CAMEL_CASE_NAMING_CONVENTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DISABLE_AUTO_ESCAPING_POLICY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DISABLE_AUTO_ESCAPING_POLICY</h4>
<pre>public static final&nbsp;int DISABLE_AUTO_ESCAPING_POLICY</pre>
<div class="block">Don't enable auto-escaping, regardless of what the <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> is. Note that a <code>&lt;#ftl auto_esc=true&gt;</code> in the template will override this.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.DISABLE_AUTO_ESCAPING_POLICY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</h4>
<pre>public static final&nbsp;int ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</pre>
<div class="block">Enable auto-escaping if the output format supports it and <a href="../../freemarker/core/MarkupOutputFormat.html#isAutoEscapedByDefault--"><code>MarkupOutputFormat.isAutoEscapedByDefault()</code></a> is
<code>true</code>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY</h4>
<pre>public static final&nbsp;int ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY</pre>
<div class="block">Enable auto-escaping if the <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> supports it.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.template.Configuration.ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VERSION_2_3_0">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_0</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_0</pre>
<div class="block">FreeMarker version 2.3.0 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_19">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_19</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_19</pre>
<div class="block">FreeMarker version 2.3.19 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_20">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_20</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_20</pre>
<div class="block">FreeMarker version 2.3.20 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_21">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_21</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_21</pre>
<div class="block">FreeMarker version 2.3.21 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_22">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_22</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_22</pre>
<div class="block">FreeMarker version 2.3.22 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_23">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_23</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_23</pre>
<div class="block">FreeMarker version 2.3.23 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_24">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_24</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_24</pre>
<div class="block">FreeMarker version 2.3.24 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_25">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_25</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_25</pre>
<div class="block">FreeMarker version 2.3.25 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_26">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_26</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_26</pre>
<div class="block">FreeMarker version 2.3.26 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_27">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_27</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_27</pre>
<div class="block">FreeMarker version 2.3.27 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_28">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_28</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_28</pre>
<div class="block">FreeMarker version 2.3.28 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_29">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_29</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_29</pre>
<div class="block">FreeMarker version 2.3.29 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_30">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_30</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_30</pre>
<div class="block">FreeMarker version 2.3.30 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_31">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_31</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_31</pre>
<div class="block">FreeMarker version 2.3.31 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="VERSION_2_3_32">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VERSION_2_3_32</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> VERSION_2_3_32</pre>
<div class="block">FreeMarker version 2.3.32 (an <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible improvements break-point</code></a>)</div>
</li>
</ul>
<a name="DEFAULT_INCOMPATIBLE_IMPROVEMENTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_INCOMPATIBLE_IMPROVEMENTS</h4>
<pre>public static final&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> DEFAULT_INCOMPATIBLE_IMPROVEMENTS</pre>
<div class="block">The default of <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a>, currently <a href="../../freemarker/template/Configuration.html#VERSION_2_3_0"><code>VERSION_2_3_0</code></a>.</div>
</li>
</ul>
<a name="DEFAULT_INCOMPATIBLE_ENHANCEMENTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_INCOMPATIBLE_ENHANCEMENTS</h4>
<pre>@Deprecated
public static final&nbsp;java.lang.String DEFAULT_INCOMPATIBLE_ENHANCEMENTS</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#DEFAULT_INCOMPATIBLE_IMPROVEMENTS"><code>DEFAULT_INCOMPATIBLE_IMPROVEMENTS</code></a> instead.</span></div>
</li>
</ul>
<a name="PARSED_DEFAULT_INCOMPATIBLE_ENHANCEMENTS">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PARSED_DEFAULT_INCOMPATIBLE_ENHANCEMENTS</h4>
<pre>@Deprecated
public static final&nbsp;int PARSED_DEFAULT_INCOMPATIBLE_ENHANCEMENTS</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#DEFAULT_INCOMPATIBLE_IMPROVEMENTS"><code>DEFAULT_INCOMPATIBLE_IMPROVEMENTS</code></a> instead.</span></div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Configuration--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Configuration</h4>
<pre>@Deprecated
public&nbsp;Configuration()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a> instead. Note that the version can be still modified later with
<a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a> (or
<a href="../../freemarker/core/Configurable.html#setSettings-java.util.Properties-"><code>Configurable.setSettings(Properties)</code></a>).</span></div>
<div class="block">Same as <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS)</code></a>.</div>
</li>
</ul>
<a name="Configuration-freemarker.template.Version-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Configuration</h4>
<pre>public&nbsp;Configuration(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</pre>
<div class="block">Creates a new instance and sets which of the non-backward-compatible bugfixes/improvements should be enabled.
Note that the specified versions corresponds to the <code>incompatible_improvements</code> configuration setting, and
can be changed later, with <a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a> for example.
<p><b>About the "incompatible improvements" setting</b>
<p>This setting value is the FreeMarker version number where the not 100% backward compatible bug fixes and
improvements that you want to enable were already implemented. In new projects you should set this to the fixed
FreeMarker version that you start the development with. In older projects it's also usually better to keep
this high, however you should check the changes activated (find them below), especially if not only the 3rd
version number (the micro version) of <code>incompatibleImprovements</code> is increased. Generally, as far as you
only increase the last version number of this setting, the changes are low risk. The default value is 2.3.0 to
maximize backward compatibility, but that value isn't recommended.
<p>Bugfixes and improvements that are fully backward compatible, also those that are important security fixes,
are enabled regardless of the incompatible improvements setting.
<p>Do NOT ever use <a href="../../freemarker/template/Configuration.html#getVersion--"><code>getVersion()</code></a> to set the "incompatible improvements". Always use a fixed value, like
<a href="../../freemarker/template/Configuration.html#VERSION_2_3_30"><code>VERSION_2_3_30</code></a>. Otherwise your application can break as you upgrade FreeMarker. (As of 2.3.30, doing
this will be logged as an error. As of 2.4.0, it will be probably disallowed, by throwing exception.)
<p>An important consequence of setting this setting is that now your application will check if the stated minimum
FreeMarker version requirement is met. Like if you set this setting to 2.3.22, but accidentally the application
is deployed with FreeMarker 2.3.21, then FreeMarker will fail, telling that a higher version is required. After
all, the fixes/improvements you have requested aren't available on a lower version.
<p>Note that as FreeMarker's minor (2nd) or major (1st) version number increments, it's possible that emulating
some of the old bugs will become unsupported, that is, even if you set this setting to a low value, it silently
wont bring back the old behavior anymore. Information about that will be present here.
<p>Currently the effects of this setting are:
<ul>
<li><p>
2.3.0: This is the lowest supported value, the version used in very old projects. This is the default in the
FreeMarker 2.3.x series (the one used by the deprecated <a href="../../freemarker/template/Configuration.html#Configuration--"><code>Configuration()</code></a> constructor) for maximum
backward compatibility.
</li>
<li><p>
2.3.19 (or higher): Bug fix: Wrong <code>#</code> tags were printed as static text instead of
causing parsing error when there was no correct <code>#</code> or <code>@</code> tag earlier in the
same template.
</li>
<li><p>
2.3.20 (or higher): <code>?html</code> will escape apostrophe-quotes just like <code>?xhtml</code> does. Utilizing
this is highly recommended, because otherwise if interpolations are used inside attribute values that use
apostrophe-quotation (<tt>&lt;foo bar='${val}'&gt;</tt>) instead of plain quotation mark
(<tt>&lt;foo bar="${val}"&gt;</tt>), they might produce HTML/XML that's not well-formed. Note that
<code>?html</code> didn't do this because long ago there was no cross-browser way of doing this, but it's not a
concern anymore.
</li>
<li><p>
2.3.21 (or higher):
<ul>
<li><p>
The <em>default</em> of the <code>object_wrapper</code> setting (<a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a>) changes from
<a href="../../freemarker/template/ObjectWrapper.html#DEFAULT_WRAPPER"><code>ObjectWrapper.DEFAULT_WRAPPER</code></a> to another almost identical <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> singleton,
returned by <a href="../../freemarker/template/DefaultObjectWrapperBuilder.html#build--"><code>DefaultObjectWrapperBuilder.build()</code></a>. The new default object wrapper's
"incompatible improvements" version is set to the same as of the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>.
See <a href="../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper.BeansWrapper(Version)</code></a> for further details. Furthermore, the new default
object wrapper doesn't allow changing its settings; setter methods throw <code>IllegalStateException</code>).
(If anything tries to call setters on the old default in your application, that's a dangerous bug that
won't remain hidden now. As the old default is a singleton too, potentially shared by independently
developed components, most of them expects the out-of-the-box behavior from it (and the others are
necessarily buggy). Also, then concurrency glitches can occur (and even pollute the class introspection
cache) because the singleton is modified after publishing to other threads.)
Furthermore the new default object wrapper shares class introspection cache with other
<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>-s created with <a href="../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a>, which has an impact as
<a href="../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospectionCache--"><code>BeansWrapper.clearClassIntrospectionCache()</code></a> will be disallowed; see more about it there.
</li>
<li><p>
The <code>?iso_...</code> built-ins won't show the time zone offset for <code>Time</code> values anymore,
because most databases store time values that aren't in any time zone, but just store hour, minute,
second, and decimal second field values. If you still want to show the offset (like for PostgreSQL
"time with time zone" columns you should), you can force showing the time zone offset by using
<code>myTime?string.iso_fz</code> (and its other variants).
</li>
<li><p><code>?is_enumerable</code> correctly returns <code>false</code> for Java methods get from Java objects that
are wrapped with <a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> and its subclasses, like <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>. Although
method values implement <a href="../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template"><code>TemplateSequenceModel</code></a> (because of a historical design quirk in
<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>), trying to <code>#list</code> them will cause error, hence they aren't enumerable.
</li>
<li><p>
<code>?c</code> will return <code>"INF"</code>, <code>"-INF"</code> and <code>"NaN"</code> for positive/negative infinity
and IEEE floating point Not-a-Number, respectively. These are the XML Schema compatible representations
of these special values. Earlier it has returned what <code>DecimalFormat</code> did with US locale, none of
which was understood by any (common) computer language.
</li>
<li><p>
FTL hash literals that repeat keys now only have the key once with <code>?keys</code>, and only has the last
value associated to that key with <code>?values</code>. This is consistent with the behavior of
<code>hash[key]</code> and how maps work in Java.
</li>
<li><p>In most cases (where FreeMarker is able to do that), for <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>-s that use
<code>URLConnection</code>, <code>URLConnection#setUseCaches(boolean)</code> will called with <code>false</code>,
so that only FreeMarker will do caching, not the URL scheme's handler.
See <a href="../../freemarker/cache/URLTemplateLoader.html#setURLConnectionUsesCaches-java.lang.Boolean-"><code>URLTemplateLoader.setURLConnectionUsesCaches(Boolean)</code></a> for more details.
</li>
<li><p>
The default of the <code>template_loader</code> setting (<a href="../../freemarker/template/Configuration.html#getTemplateLoader--"><code>getTemplateLoader()</code></a>) changes
to <code>null</code>, which means that FreeMarker will not find any templates. Earlier
the default was a <a href="../../freemarker/cache/FileTemplateLoader.html" title="class in freemarker.cache"><code>FileTemplateLoader</code></a> that used the current directory as the root. This was
dangerous and fragile as you usually don't have good control over what the current directory will be.
Luckily, the old default almost never looked for the templates at the right place
anyway, so pretty much all applications had to set the <code>template_loader</code> setting, so it's unlikely
that changing the default breaks your application.
</li>
<li><p>
Right-unlimited ranges become readable (like listable), so <code>&lt;#list 1.. as i&gt;...&lt;/#list&gt;</code> works.
Earlier they were only usable for slicing (like <code>hits[10..]</code>).
</li>
<li><p>
Empty ranges return <a href="../../freemarker/template/utility/Constants.html#EMPTY_SEQUENCE"><code>Constants.EMPTY_SEQUENCE</code></a> instead of an empty <a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><code>SimpleSequence</code></a>. This
is in theory backward compatible, as the API only promises to give something that implements
<a href="../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template"><code>TemplateSequenceModel</code></a>.
</li>
<li><p>
Unclosed comments (<code>&lt;#-- ...</code>) and <code>#noparse</code>-s won't be silently closed at the end of
template anymore, but cause a parsing error instead.
</li>
</ul>
</li>
<li><p>
2.3.22 (or higher):
<ul>
<li><p>
<a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> has some substantial changes with <code>incompatibleImprovements</code> 2.3.22;
check them out at <a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.Version-"><code>DefaultObjectWrapper.DefaultObjectWrapper(Version)</code></a>. It's important to know
that if you set the <code>object_wrapper</code> setting (to an other value than <code>"default"</code>), rather
than leaving it on its default value, the <code>object_wrapper</code> won't inherit the
<code>incompatibleImprovements</code> of the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>. In that case, if you want the 2.3.22
improvements of <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>, you have to set it in the <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>
object itself too! (Note that it's OK to use a <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> with a different
<code>incompatibleImprovements</code> version number than that of the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>, if that's
really what you want.)
</li>
<li><p>
In templates, <code>.template_name</code> will <em>always</em> return the main (top level) template's name.
It won't be affected by <code>#include</code> and <code>#nested</code> anymore. This is unintended, a bug with
<code>incompatible_improvement</code> 2.3.22 (a consequence of the lower level fixing described in the next
point). The old behavior of <code>.template_name</code> is restored if you set
<code>incompatible_improvement</code> to 2.3.23 (while <a href="../../freemarker/core/Configurable.html#getParent--"><code>Configurable.getParent()</code></a> of
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> keeps the changed behavior shown in the next point).
</li>
<li><p>
<code>#include</code> and <code>#nested</code> doesn't change the parent <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> (see
<a href="../../freemarker/core/Configurable.html#getParent--"><code>Configurable.getParent()</code></a>) of the <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> anymore to the <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> that's
included or whose namespace <code>#nested</code> "returns" to. Thus, the parent of <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> will
be now always the main <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a>. (The main <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> is the <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> whose
<code>process</code> or <code>createProcessingEnvironment</code> method was called to initiate the output
generation.) Note that apart from the effect on FTL's <code>.template_name</code> (see
previous point), this should only matter if you have set settings directly on <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> objects,
and almost nobody does that. Also note that macro calls have never changed the <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a>
parent to the <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> that contains the macro definition, so this mechanism was always broken.
As now we consistently never change the parent, the behavior when calling macros didn't change.
</li>
<li><p>
When using <code>freemarker.ext.servlet.FreemarkerServlet</code>:
<ul>
<li>
<p>When using custom JSP tag libraries: Fixes bug where some kind of
values, when put into the JSP <em>page</em> scope (via <code>#global</code> or via the JSP
<code>PageContext</code> API) and later read back with the JSP <code>PageContext</code> API (typically in a
custom JSP tag), might come back as FreeMarker <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> objects instead of as objects
with a standard Java type. Other Servlet scopes aren't affected. It's highly unlikely that
something expects the presence of this bug. The affected values are of the FTL types listed below,
and to trigger the bug, they either had to be created directly in the template (like as an FTL
literal or with <code>?date</code>/<code>time</code>/<code>datetime</code>), or you had to use
<a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> or <a href="../../freemarker/template/SimpleObjectWrapper.html" title="class in freemarker.template"><code>SimpleObjectWrapper</code></a> (or a subclass of them):
<ul>
<li>FTL date/time/date-time values may came back as <a href="../../freemarker/template/SimpleDate.html" title="class in freemarker.template"><code>SimpleDate</code></a>-s, now they come back as
<code>java.util.Date</code>-s instead.</li>
<li>FTL sequence values may came back as <a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><code>SimpleSequence</code></a>-s, now they come back as
<code>List</code>-s as expected. This at least stands assuming that the
<a href="../../freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-"><code>object_wrapper</code></a> configuration setting is a
subclass of <a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> (such as <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>, which is the default),
but that's practically always the case in applications that use FreeMarker's JSP extension
(otherwise it can still work, but it depends on the quality and capabilities of the
<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> implementation).</li>
<li>FTL hash values may came back as <a href="../../freemarker/template/SimpleHash.html" title="class in freemarker.template"><code>SimpleHash</code></a>-es, now they come back as
<code>Map</code>-s as expected (again, assuming that the object wrapper is a subclass of
<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>, like preferably <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>, which is also the default).
</li>
<li>FTL collection values may came back as <a href="../../freemarker/template/SimpleCollection.html" title="class in freemarker.template"><code>SimpleCollection</code></a>-s, now they come back as
<code>Collection</code>-s as expected (again, assuming that the object wrapper is a subclass
of <a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>, like preferably <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>).</li>
</ul>
</li>
<li><p>
Initial <code>"["</code> in the <code>TemplatePath</code> init-param
has special meaning; it's used for specifying multiple comma separated locations, like in
<code>&lt;param-value&gt;[ WEB-INF/templates, classpath:com/example/myapp/templates ]&lt;/param-value&gt;</code>
</li>
<li><p>
Initial <tt>"{"</tt> in the <code>TemplatePath</code> init-param is reserved for future purposes, and
thus will throw exception.
</li>
</ul>
</li>
</ul>
</li>
<li><p>
2.3.23 (or higher):
<ul>
<li><p>
Fixed a loophole in the implementation of the long existing parse-time rule that says that
<code>#break</code>, in the FTL source code itself, must occur nested inside a breakable directive, such as
<code>#list</code> or <code>#switch</code>. This check could be circumvented with <code>#macro</code> or
<code>#function</code>, like this:
<code>&lt;#list 1..1 as x&gt;&lt;#macro callMeLater&gt;&lt;#break&gt;&lt;/#macro&gt;&lt;/#list&gt;&lt;@callMeLater /&gt;</code>.
After activating this fix, this will be a parse time error.
</li>
<li><p>
If you have used <code>incompatible_improvements</code> 2.3.22 earlier, know that there the behavior of the
<code>.template_name</code> special variable used in templates was accidentally altered, but now it's
restored to be backward compatible with 2.3.0. (Ironically, the restored legacy behavior itself is
broken when it comes to macro invocations, we just keep it for backward compatibility. If you need fixed
behavior, use <code>.current_template_name</code> or <code>.main_template_name</code> instead.)
</li>
</ul>
</li>
<li><p>
2.3.24 (or higher):
<ul>
<li><p>
The default of the
<a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>recognize_standard_file_extensions</code></a>
setting changes to <code>true</code>, which means that templates whose name ends with <code>".ftlh"</code> or
<code>".ftlx"</code> will automatically get <a href="../../freemarker/core/HTMLOutputFormat.html#INSTANCE"><code>HTMLOutputFormat.INSTANCE</code></a> or
<a href="../../freemarker/core/XMLOutputFormat.html#INSTANCE"><code>XMLOutputFormat.INSTANCE</code></a> output format respectively, in both cases with
<a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</code></a> <a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>auto_escaping_policy</code></a>.
These "file" extensions aren't case sensitive.
</li>
<li><p>
In number format and date format strings (like in the <code>number_format</code> setting, or in templates in
<code>n?string("0.##")</code>), an initial <code>'@'</code> has special meaning; they refer to a custom format
with the name given after the <code>@</code> (see: <a href="../../freemarker/core/Configurable.html#setCustomNumberFormats-java.util.Map-"><code>Configurable.setCustomNumberFormats(Map)</code></a>,
<a href="../../freemarker/core/Configurable.html#setCustomDateFormats-java.util.Map-"><code>Configurable.setCustomDateFormats(Map)</code></a>, <a href="../../freemarker/core/Configurable.html#setNumberFormat-java.lang.String-"><code>Configurable.setNumberFormat(String)</code></a>, and <a href="../../freemarker/core/Configurable.html#setDateTimeFormat-java.lang.String-"><code>Configurable.setDateTimeFormat(java.lang.String)</code></a>).
If the custom format doesn't exist, that will be an error. To have a literal <code>@</code> as the first
character in the output, it has to be written as <code>@@</code>. Again, all this only applies to the very
first character of the format string, so <code>@</code> characters elsewhere must not be doubled. Also, if
there are any custom formats defined, initial <code>'@'</code> will have the new meaning regardless of
the value of the <code>incompatible_improvements</code> setting. So you don't need to set the
<code>incompatible_improvements</code> only to use custom formats.
</li>
<li><p>
Expressions inside interpolations that were inside <em>string literal expressions</em>
(not <code>${...}</code>-s in general), like in <code>&lt;#assign s="Hello ${name}!"&gt;</code>, has
always used <code>incompatbileImprovement</code>-s 0 (2.3.0 in effect). Now it's fixed.
</li>
<li><p>
<a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> has some minor changes with <code>incompatibleImprovements</code> 2.3.24;
check them out at <a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.Version-"><code>DefaultObjectWrapper.DefaultObjectWrapper(Version)</code></a>. It's important to know
that if you set the <code>object_wrapper</code> setting (to an other value than <code>"default"</code>), rather
than leaving it on its default value, the <code>object_wrapper</code> won't inherit the
<code>incompatibleImprovements</code> of the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>. In that case, if you want the 2.3.24
improvements of <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>, you have to set it in the <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>
object itself too! (Note that it's OK to use a <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> with a different
<code>incompatibleImprovements</code> version number than that of the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>, if that's
really what you want.)
</li>
<li><p>
Fixed bug: The <code>#import</code> directive meant to copy the library variable into a global variable if
it's executed in the main namespace, but that haven't happened when the imported template was already
imported earlier in another namespace.
</li>
<li><p>
<code>?is_sequence</code> doesn't return <code>true</code> for Java methods wrapped by <a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> and
its subclasses (most notably <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>) anymore, as they only implement the
<code>[index]</code> operator, but not <code>?size</code>, which causes <code>&lt;#list ...&gt;</code> to fail among others.
(They shouldn't implement either, but this is historical heritage.)
</ul>
</li>
<li><p>
2.3.25 (or higher):
<ul>
<li><p>
When calling <a href="../../freemarker/core/Configurable.html#setAutoIncludes-java.util.List-"><code>Configurable.setAutoIncludes(List)</code></a> on a <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>, it filters out
duplicates from the list, similarly as repeatedly calling <a href="../../freemarker/core/Configurable.html#addAutoInclude-java.lang.String-"><code>Configurable.addAutoInclude(String)</code></a>
would, hence avoiding repeated inclusions. Calling <a href="../../freemarker/core/Configurable.html#setAutoIncludes-java.util.List-"><code>Configurable.setAutoIncludes(List)</code></a> on other
<a href="../../freemarker/core/Configurable.html" title="class in freemarker.core"><code>Configurable</code></a>-s always do this filtering regardless of the incompatible improvements setting.
</ul>
</li>
<li><p>
2.3.26 (or higher):
<ul>
<li><p>
<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> and <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> now exposes Java 8 default methods (and the bean
properties they define); see <a href="../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper.BeansWrapper(Version)</code></a>.
</ul>
</li>
<li><p>
2.3.27 (or higher):
<ul>
<li><p>
<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> and <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> now prefers the non-indexed JavaBean property
read method over the indexed read method when Java 8 exposes both;
see <a href="../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper.BeansWrapper(Version)</code></a>.
<li><p>
The following unchecked exceptions (but not their subclasses) will be wrapped into
<a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>-s when thrown during evaluating expressions or calling directives:
<code>NullPointerException</code>, <code>ClassCastException</code>, <code>IndexOutOfBoundsException</code>, and
<code>InvocationTargetException</code>. The goal of this is the same as of setting
<a href="../../freemarker/template/Configuration.html#setWrapUncheckedExceptions-boolean-"><code>wrap_unchecked_exceptions</code></a> to <code>true</code> (see more there),
but this is more backward compatible, as it avoids wrapping unchecked exceptions that the calling
application is likely to catch specifically (like application-specific unchecked exceptions).
<li><p>
When the <code>Writer</code> returned by <a href="../../freemarker/template/TemplateTransformModel.html#getWriter-java.io.Writer-java.util.Map-"><code>TemplateTransformModel.getWriter(Writer, Map)</code></a> implements
<a href="../../freemarker/template/TransformControl.html" title="interface in freemarker.template"><code>TransformControl</code></a>, exceptions that are used internally by FreeMarker for flow control (for
<code>&lt;#return&gt;</code>, <code>&lt;#break&gt;</code>, etc.) won't be passed to
<a href="../../freemarker/template/TransformControl.html#onError-java.lang.Throwable-"><code>TransformControl.onError(Throwable)</code></a> anymore. Earlier, if <code>onError</code> didn't rethrow the
exception (though almost all implementation does), you couldn't use said directives inside the
transformed block. It's very unlikely that user code is affected by this, partially because these aren't
commonly implemented interfaces (especially not <a href="../../freemarker/template/TransformControl.html" title="interface in freemarker.template"><code>TransformControl</code></a>), and because it's unlikely
that templates utilize the the bug that's not fixed.
</ul>
</li>
<li><p>
2.3.28 (or higher):
<ul>
<li><p>When calling a macro or function (things defined in a template, not directly in Java) and the
argument list contains <code>.current_template_name</code>, now it will correctly evaluate to the template
that contains the call, rather than to the template that contains the macro or function definition.
(Of course, the parameter default value expression is still evaluated in the context of the called
macro or function.) Similarly, <code>.macro_caller_template_name</code> (which itself was added in 2.3.28),
when used in a macro call argument, won't be incorrectly evaluated in the context of the called macro.
<li><p>Fixed legacy parser glitch where a tag can be closed with an illegal <code>]</code> (when it's not part
of an expression) despite that the tag syntax is set to angle brackets. For example <code>&lt;#if x]</code>
worked just like <code>&lt;#if x&gt;</code>. Note that it doesn't affect the legal usage of <code>]</code>, like
<code>&lt;#if x[0]&gt;</code> works correctly without this fix as well.
</ul>
</li>
<li><p>
2.3.31 (or higher):
<ul>
<li><p>When you set the <code>number_format</code> setting to <code>"computer"</code> (or you call
<a href="../../freemarker/core/Environment.html#getCNumberFormat--"><code>Environment.getCNumberFormat()</code></a>), the format now matches the behavior of <code>?c</code>, when formatting
infinite (positive and negative), and NaN. Matching the behavior of <code>?c</code> was always the intent,
but before this incompatible improvement, the <code>"computer"</code> format always behaved like <code>?c</code>
before Incompatible Improvements 2.3.21, where instead of INF, and NaN, the results used unicode characters
U+221E, and U+FFFD.
</ul>
</li>
<li><p>
2.3.32 (or higher):
<ul>
<li><p>
The number formatting of <code>?c</code>, <code>?cn</code> (and thus also of the <code>"c"</code>, and
<code>"computer"</code> <a href="../../freemarker/core/Configurable.html#setNumberFormat-java.lang.String-"><code>number_format</code></a>) changes, if the
<a href="../../freemarker/template/Configuration.html#setCFormat-freemarker.core.CFormat-"><code>c_format</code></a> setting was left on its default. The default of
<a href="../../freemarker/template/Configuration.html#setCFormat-freemarker.core.CFormat-"><code>c_format</code></a> changes to <a href="../../freemarker/core/JavaScriptOrJSONCFormat.html#INSTANCE"><code>JavaScriptOrJSONCFormat.INSTANCE</code></a>, from
<a href="../../freemarker/core/LegacyCFormat.html#INSTANCE"><code>LegacyCFormat.INSTANCE</code></a>, and that's what contains the changes:</p>
<ul>
<li><p>Changes affecting non-whole numbers, and whole numbers with over 100 digits:
Formatting is now lossless, so it potentially shows much more decimals.
It now uses exponential format (like 1.2E-7 instead of 0.00000012) for numbers whose absolute value
is less than 1E-6 (0.000001), and for whole numbers whose absolute value is at least 1E101 (so over
100 digits). It also uses exponential format for whole floating point
(<code>double</code>/<code>Double</code>}, or <code>float</code>/<code>Float</code>) numbers, when their absolute value
is too big for the floating point type to store them precisely (so if the intent was to store some
ID-s, they are likely corrupted anyway, as the type skips some whole numbers).</p></li>
<li><p>Changes affecting floating point infinity: Output changes from <code>INF</code> to <code>Infinity</code>,
which is the JavaScript and JSON syntax. If you generate XML with XSD-style number syntax (which uses
<code>INF</code>), but you want the other number formatting changes (recommended), then set
<a href="../../freemarker/template/Configuration.html#setCFormat-freemarker.core.CFormat-"><code>c_format</code></a> to <a href="../../freemarker/core/XSCFormat.html#INSTANCE"><code>XSCFormat.INSTANCE</code></a>/<code>"XS"</code>.</p></li>
</ul>
</li>
</ul>
</li>
</ul></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If <code>incompatibleImmprovements</code> refers to a version that wasn't released yet when the currently
used FreeMarker version was released, or is less than 2.3.0, or is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</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="clone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre>public&nbsp;java.lang.Object&nbsp;clone()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#clone--">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
</dl>
</li>
</ul>
<a name="loadBuiltInEncodingMap--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadBuiltInEncodingMap</h4>
<pre>public&nbsp;void&nbsp;loadBuiltInEncodingMap()</pre>
<div class="block">Loads a preset language-to-encoding map, similarly as if you have called
<a href="../../freemarker/template/Configuration.html#clearEncodingMap--"><code>clearEncodingMap()</code></a> and then did multiple <a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-"><code>setEncoding(Locale, String)</code></a> calls.
It assumes the usual character encodings for most languages.
The previous content of the encoding map will be lost.
This default map currently contains the following mappings:
<table style="width: auto; border-collapse: collapse" border="1" summary="preset language to encoding mapping">
<tr><td>ar</td><td>ISO-8859-6</td></tr>
<tr><td>be</td><td>ISO-8859-5</td></tr>
<tr><td>bg</td><td>ISO-8859-5</td></tr>
<tr><td>ca</td><td>ISO-8859-1</td></tr>
<tr><td>cs</td><td>ISO-8859-2</td></tr>
<tr><td>da</td><td>ISO-8859-1</td></tr>
<tr><td>de</td><td>ISO-8859-1</td></tr>
<tr><td>el</td><td>ISO-8859-7</td></tr>
<tr><td>en</td><td>ISO-8859-1</td></tr>
<tr><td>es</td><td>ISO-8859-1</td></tr>
<tr><td>et</td><td>ISO-8859-1</td></tr>
<tr><td>fi</td><td>ISO-8859-1</td></tr>
<tr><td>fr</td><td>ISO-8859-1</td></tr>
<tr><td>hr</td><td>ISO-8859-2</td></tr>
<tr><td>hu</td><td>ISO-8859-2</td></tr>
<tr><td>is</td><td>ISO-8859-1</td></tr>
<tr><td>it</td><td>ISO-8859-1</td></tr>
<tr><td>iw</td><td>ISO-8859-8</td></tr>
<tr><td>ja</td><td>Shift_JIS</td></tr>
<tr><td>ko</td><td>EUC-KR</td></tr>
<tr><td>lt</td><td>ISO-8859-2</td></tr>
<tr><td>lv</td><td>ISO-8859-2</td></tr>
<tr><td>mk</td><td>ISO-8859-5</td></tr>
<tr><td>nl</td><td>ISO-8859-1</td></tr>
<tr><td>no</td><td>ISO-8859-1</td></tr>
<tr><td>pl</td><td>ISO-8859-2</td></tr>
<tr><td>pt</td><td>ISO-8859-1</td></tr>
<tr><td>ro</td><td>ISO-8859-2</td></tr>
<tr><td>ru</td><td>ISO-8859-5</td></tr>
<tr><td>sh</td><td>ISO-8859-5</td></tr>
<tr><td>sk</td><td>ISO-8859-2</td></tr>
<tr><td>sl</td><td>ISO-8859-2</td></tr>
<tr><td>sq</td><td>ISO-8859-2</td></tr>
<tr><td>sr</td><td>ISO-8859-5</td></tr>
<tr><td>sv</td><td>ISO-8859-1</td></tr>
<tr><td>tr</td><td>ISO-8859-9</td></tr>
<tr><td>uk</td><td>ISO-8859-5</td></tr>
<tr><td>zh</td><td>GB2312</td></tr>
<tr><td>zh_TW</td><td>Big5</td></tr>
</table></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#clearEncodingMap--"><code>clearEncodingMap()</code></a>,
<a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-"><code>setEncoding(Locale, String)</code></a>,
<a href="../../freemarker/template/Configuration.html#setDefaultEncoding-java.lang.String-"><code>setDefaultEncoding(String)</code></a></dd>
</dl>
</li>
</ul>
<a name="clearEncodingMap--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearEncodingMap</h4>
<pre>public&nbsp;void&nbsp;clearEncodingMap()</pre>
<div class="block">Clears language-to-encoding map.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#loadBuiltInEncodingMap--"><code>loadBuiltInEncodingMap()</code></a>,
<a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-"><code>setEncoding(java.util.Locale, java.lang.String)</code></a></dd>
</dl>
</li>
</ul>
<a name="getDefaultConfiguration--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultConfiguration</h4>
<pre>@Deprecated
public static&nbsp;<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;getDefaultConfiguration()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">The usage of the static singleton (the "default")
<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instance can easily cause erroneous, unpredictable
behavior. This is because multiple independent software components may use
FreeMarker internally inside the same application, so they will interfere
because of the common <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instance. Each such component
should use its own private <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object instead, that it
typically creates with <code>new Configuration()</code> when the component
is initialized.</span></div>
<div class="block">Returns the default (singleton) Configuration object. Note that you can
create as many separate configurations as you wish; this global instance
is provided for convenience, or when you have no reason to use a separate
instance.</div>
</li>
</ul>
<a name="setDefaultConfiguration-freemarker.template.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDefaultConfiguration</h4>
<pre>@Deprecated
public static&nbsp;void&nbsp;setDefaultConfiguration(<a href="../../freemarker/template/Configuration.html" title="class in freemarker.template">Configuration</a>&nbsp;config)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Using the "default" <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instance can
easily lead to erroneous, unpredictable behaviour.
See more <a href="../../freemarker/template/Configuration.html#getDefaultConfiguration--"><code>here...</code></a>.</span></div>
<div class="block">Sets the Configuration object that will be retrieved from future calls
to <a href="../../freemarker/template/Configuration.html#getDefaultConfiguration--"><code>getDefaultConfiguration()</code></a>.</div>
</li>
</ul>
<a name="setTemplateLoader-freemarker.cache.TemplateLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemplateLoader</h4>
<pre>public&nbsp;void&nbsp;setTemplateLoader(<a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache">TemplateLoader</a>&nbsp;templateLoader)</pre>
<div class="block">Sets a <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that is used to look up and load templates;
as a side effect the template cache will be emptied (unless the new and the old values are the same).
By providing your own <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> implementation, you can load templates from whatever kind of
storages, like from relational databases, NoSQL-storages, etc.
<p>Convenience methods exists to install commonly used loaders, instead of using this method:
<a href="../../freemarker/template/Configuration.html#setClassForTemplateLoading-java.lang.Class-java.lang.String-"><code>setClassForTemplateLoading(Class, String)</code></a>,
<a href="../../freemarker/template/Configuration.html#setClassLoaderForTemplateLoading-java.lang.ClassLoader-java.lang.String-"><code>setClassLoaderForTemplateLoading(ClassLoader, String)</code></a>,
<a href="../../freemarker/template/Configuration.html#setDirectoryForTemplateLoading-java.io.File-"><code>setDirectoryForTemplateLoading(File)</code></a>, and
<a href="../../freemarker/template/Configuration.html#setServletContextForTemplateLoading-java.lang.Object-java.lang.String-"><code>setServletContextForTemplateLoading(Object, String)</code></a>.
<p>You can chain several <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>-s together with <a href="../../freemarker/cache/MultiTemplateLoader.html" title="class in freemarker.cache"><code>MultiTemplateLoader</code></a>.
<p>Default value: You should always set the template loader instead of relying on the default value.
(But if you still care what it is, before "incompatible improvements" 2.3.21 it's a <a href="../../freemarker/cache/FileTemplateLoader.html" title="class in freemarker.cache"><code>FileTemplateLoader</code></a>
that uses the current directory as its root; as it's hard tell what that directory will be, it's not very useful
and dangerous. Starting with "incompatible improvements" 2.3.21 the default is <code>null</code>.)</div>
</li>
</ul>
<a name="unsetTemplateLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetTemplateLoader</h4>
<pre>public&nbsp;void&nbsp;unsetTemplateLoader()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isTemplateLoaderExplicitlySet--"><code>isTemplateLoaderExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="isTemplateLoaderExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTemplateLoaderExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isTemplateLoaderExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getTemplateLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplateLoader</h4>
<pre>public&nbsp;<a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache">TemplateLoader</a>&nbsp;getTemplateLoader()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a>.</div>
</li>
</ul>
<a name="setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemplateLookupStrategy</h4>
<pre>public&nbsp;void&nbsp;setTemplateLookupStrategy(<a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache">TemplateLookupStrategy</a>&nbsp;templateLookupStrategy)</pre>
<div class="block">Sets the <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a> that is used to look up templates based on the requested name; as a side
effect the template cache will be emptied. The default value is <a href="../../freemarker/cache/TemplateLookupStrategy.html#DEFAULT_2_3_0"><code>TemplateLookupStrategy.DEFAULT_2_3_0</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="unsetTemplateLookupStrategy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetTemplateLookupStrategy</h4>
<pre>public&nbsp;void&nbsp;unsetTemplateLookupStrategy()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isTemplateLookupStrategyExplicitlySet--"><code>isTemplateLookupStrategyExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="isTemplateLookupStrategyExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTemplateLookupStrategyExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isTemplateLookupStrategyExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-"><code>setTemplateLookupStrategy(TemplateLookupStrategy)</code></a> (or equivalent) was already called on this
instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getTemplateLookupStrategy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplateLookupStrategy</h4>
<pre>public&nbsp;<a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache">TemplateLookupStrategy</a>&nbsp;getTemplateLookupStrategy()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-"><code>setTemplateLookupStrategy(TemplateLookupStrategy)</code></a>.</div>
</li>
</ul>
<a name="setTemplateNameFormat-freemarker.cache.TemplateNameFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemplateNameFormat</h4>
<pre>public&nbsp;void&nbsp;setTemplateNameFormat(<a href="../../freemarker/cache/TemplateNameFormat.html" title="class in freemarker.cache">TemplateNameFormat</a>&nbsp;templateNameFormat)</pre>
<div class="block">Sets the template name format used. The default is <a href="../../freemarker/cache/TemplateNameFormat.html#DEFAULT_2_3_0"><code>TemplateNameFormat.DEFAULT_2_3_0</code></a>, while the
recommended value for new projects is <a href="../../freemarker/cache/TemplateNameFormat.html#DEFAULT_2_4_0"><code>TemplateNameFormat.DEFAULT_2_4_0</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="unsetTemplateNameFormat--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetTemplateNameFormat</h4>
<pre>public&nbsp;void&nbsp;unsetTemplateNameFormat()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isTemplateNameFormatExplicitlySet--"><code>isTemplateNameFormatExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="isTemplateNameFormatExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTemplateNameFormatExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isTemplateNameFormatExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateNameFormat-freemarker.cache.TemplateNameFormat-"><code>setTemplateNameFormat(TemplateNameFormat)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getTemplateNameFormat--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplateNameFormat</h4>
<pre>public&nbsp;<a href="../../freemarker/cache/TemplateNameFormat.html" title="class in freemarker.cache">TemplateNameFormat</a>&nbsp;getTemplateNameFormat()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateNameFormat-freemarker.cache.TemplateNameFormat-"><code>setTemplateNameFormat(TemplateNameFormat)</code></a>.</div>
</li>
</ul>
<a name="setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemplateConfigurations</h4>
<pre>public&nbsp;void&nbsp;setTemplateConfigurations(<a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache">TemplateConfigurationFactory</a>&nbsp;templateConfigurations)</pre>
<div class="block">Sets a <a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache"><code>TemplateConfigurationFactory</code></a> that will configure individual templates where their settings differ
from those coming from the common <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object. A typical use case for that is specifying the
<a href="../../freemarker/core/TemplateConfiguration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>outputFormat</code></a> for templates based on their file
extension or parent directory.
<p>
Note that the settings suggested by standard file extensions are stronger than that you set here. See
<a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a> for more information about standard file extensions.
<p>See "Template configurations" in the FreeMarker Manual for examples.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="getTemplateConfigurations--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplateConfigurations</h4>
<pre>public&nbsp;<a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache">TemplateConfigurationFactory</a>&nbsp;getTemplateConfigurations()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(TemplateConfigurationFactory)</code></a>.</div>
</li>
</ul>
<a name="setCacheStorage-freemarker.cache.CacheStorage-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCacheStorage</h4>
<pre>public&nbsp;void&nbsp;setCacheStorage(<a href="../../freemarker/cache/CacheStorage.html" title="interface in freemarker.cache">CacheStorage</a>&nbsp;cacheStorage)</pre>
<div class="block">Sets the <a href="../../freemarker/cache/CacheStorage.html" title="interface in freemarker.cache"><code>CacheStorage</code></a> used for caching <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a>-s;
the earlier content of the template cache will be dropt.
The default is a <a href="../../freemarker/cache/SoftCacheStorage.html" title="class in freemarker.cache"><code>SoftCacheStorage</code></a>. If the total size of the <a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a>
objects is significant but most templates are used rarely, using a
<a href="../../freemarker/cache/MruCacheStorage.html" title="class in freemarker.cache"><code>MruCacheStorage</code></a> instead might be advisable. If you don't want caching at
all, use <a href="../../freemarker/cache/NullCacheStorage.html" title="class in freemarker.cache"><code>NullCacheStorage</code></a> (you can't use <code>null</code>).
<p>Note that setting the cache storage will re-create the template cache, so
all its content will be lost.</div>
</li>
</ul>
<a name="unsetCacheStorage--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetCacheStorage</h4>
<pre>public&nbsp;void&nbsp;unsetCacheStorage()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isCacheStorageExplicitlySet--"><code>isCacheStorageExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="isCacheStorageExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCacheStorageExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isCacheStorageExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setCacheStorage-freemarker.cache.CacheStorage-"><code>setCacheStorage(CacheStorage)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getCacheStorage--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCacheStorage</h4>
<pre>public&nbsp;<a href="../../freemarker/cache/CacheStorage.html" title="interface in freemarker.cache">CacheStorage</a>&nbsp;getCacheStorage()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setCacheStorage-freemarker.cache.CacheStorage-"><code>setCacheStorage(CacheStorage)</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
</dl>
</li>
</ul>
<a name="setDirectoryForTemplateLoading-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDirectoryForTemplateLoading</h4>
<pre>public&nbsp;void&nbsp;setDirectoryForTemplateLoading(java.io.File&nbsp;dir)
throws java.io.IOException</pre>
<div class="block">Sets the file system directory from which to load templates. This is equivalent to
<code>setTemplateLoader(new FileTemplateLoader(dir))</code>, so see
<a href="../../freemarker/cache/FileTemplateLoader.html#FileTemplateLoader-java.io.File-"><code>FileTemplateLoader.FileTemplateLoader(File)</code></a> for more details.
<p>
Note that FreeMarker can load templates from non-file-system sources too. See
<a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a> from more details.
<p>
Note that this shouldn't be used for loading templates that are coming from a WAR; use
<a href="../../freemarker/template/Configuration.html#setServletContextForTemplateLoading-java.lang.Object-java.lang.String-"><code>setServletContextForTemplateLoading(Object, String)</code></a> then. Servlet containers might not unpack the WAR
file, in which case you clearly can't access the contained files via <code>File</code>. Even if the WAR is unpacked,
the servlet container might not expose the location as a <code>File</code>.
<a href="../../freemarker/template/Configuration.html#setServletContextForTemplateLoading-java.lang.Object-java.lang.String-"><code>setServletContextForTemplateLoading(Object, String)</code></a> on the other hand will work in all these cases.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="setServletContextForTemplateLoading-java.lang.Object-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setServletContextForTemplateLoading</h4>
<pre>public&nbsp;void&nbsp;setServletContextForTemplateLoading(java.lang.Object&nbsp;servletContext,
java.lang.String&nbsp;path)</pre>
<div class="block">Sets the servlet context from which to load templates.
This is equivalent to <code>setTemplateLoader(new WebappTemplateLoader(sctxt, path))</code>
or <code>setTemplateLoader(new WebappTemplateLoader(sctxt))</code> if <code>path</code> was
<code>null</code>, so see <code>freemarker.cache.WebappTemplateLoader</code> for more details.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>servletContext</code> - the <code>javax.servlet.ServletContext</code> object. (The declared type is <code>Object</code>
to prevent class loading error when using FreeMarker in an environment where
there's no servlet classes available.)</dd>
<dd><code>path</code> - the path relative to the ServletContext.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a></dd>
</dl>
</li>
</ul>
<a name="setClassForTemplateLoading-java.lang.Class-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setClassForTemplateLoading</h4>
<pre>public&nbsp;void&nbsp;setClassForTemplateLoading(java.lang.Class&nbsp;resourceLoaderClass,
java.lang.String&nbsp;basePackagePath)</pre>
<div class="block">Sets the class whose <code>Class.getResource(String)</code> method will be used to load templates, from the inside the
package specified. See <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader.ClassTemplateLoader(Class, String)</code></a> for more details.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>basePackagePath</code> - Separate steps with <code>"/"</code>, not <code>"."</code>, and note that it matters if this starts with
<code>/</code> or not. See <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader.ClassTemplateLoader(Class, String)</code></a> for more details.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setClassLoaderForTemplateLoading-java.lang.ClassLoader-java.lang.String-"><code>setClassLoaderForTemplateLoading(ClassLoader, String)</code></a>,
<a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a></dd>
</dl>
</li>
</ul>
<a name="setClassLoaderForTemplateLoading-java.lang.ClassLoader-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setClassLoaderForTemplateLoading</h4>
<pre>public&nbsp;void&nbsp;setClassLoaderForTemplateLoading(java.lang.ClassLoader&nbsp;classLoader,
java.lang.String&nbsp;basePackagePath)</pre>
<div class="block">Sets the <code>ClassLoader</code> whose <code>ClassLoader.getResource(String)</code> method will be used to load templates,
from the inside the package specified. See <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader.ClassTemplateLoader(Class, String)</code></a> for
more details.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>basePackagePath</code> - Separate steps with <code>"/"</code>, not <code>"."</code>. See
<a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader.ClassTemplateLoader(Class, String)</code></a> for more details.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setClassForTemplateLoading-java.lang.Class-java.lang.String-"><code>setClassForTemplateLoading(Class, String)</code></a>,
<a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a></dd>
</dl>
</li>
</ul>
<a name="setTemplateUpdateDelay-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemplateUpdateDelay</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;setTemplateUpdateDelay(int&nbsp;seconds)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelayMilliseconds-long-"><code>setTemplateUpdateDelayMilliseconds(long)</code></a> instead, because the time granularity of this method
is often misunderstood to be milliseconds.</span></div>
<div class="block">Sets the time in seconds that must elapse before checking whether there is a newer version of a template "file"
than the cached one.
<p>
Historical note: Despite what the API documentation said earlier, this method is <em>not</em> thread-safe. While
it works well on most hardware, it's not guaranteed that FreeMarker will see the update in all threads, and
theoretically it's also possible that it will see a value that's a binary mixture of the new and the old one.</div>
</li>
</ul>
<a name="setTemplateUpdateDelayMilliseconds-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemplateUpdateDelayMilliseconds</h4>
<pre>public&nbsp;void&nbsp;setTemplateUpdateDelayMilliseconds(long&nbsp;millis)</pre>
<div class="block">Sets the time in milliseconds that must elapse before checking whether there is a newer version of a template
"file" than the cached one. Defaults to 5000 ms.
<p>
When you get a template via <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>getTemplate(String)</code></a> (or some of its overloads). FreeMarker will try to get
the template from the template cache. If the template is found, and at least this amount of time was elapsed
since the template last modification date was checked, FreeMarker will re-check the last modification date (this
could mean I/O), possibly reloading the template and updating the cache as a consequence (can mean even more
I/O). The <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>getTemplate(String)</code></a> (or some of its overloads) call will only return after this all is
done, so it will return the fresh template.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.23</dd>
</dl>
</li>
</ul>
<a name="getTemplateUpdateDelayMilliseconds--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplateUpdateDelayMilliseconds</h4>
<pre>public&nbsp;long&nbsp;getTemplateUpdateDelayMilliseconds()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelayMilliseconds-long-"><code>setTemplateUpdateDelayMilliseconds(long)</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.23</dd>
</dl>
</li>
</ul>
<a name="setStrictSyntaxMode-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStrictSyntaxMode</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;setStrictSyntaxMode(boolean&nbsp;b)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Only <code>true</code> (the default) value will be supported sometimes in the future.</span></div>
<div class="block">Sets whether directives such as <code>if</code>, <code>else</code>, etc must be written as <code>#if</code>, <code>#else</code>, etc.
Defaults to <code>true</code>.
<p>When this is <code>true</code>,
any tag not starting with &lt;# or &lt;/# or &lt;@ or &lt;/@ is considered as plain text
and will go to the output as is. Tag starting with &lt;# or &lt;/# must
be valid FTL tag, or else the template is invalid (i.e. &lt;#noSuchDirective&gt;
is an error).</div>
</li>
</ul>
<a name="setObjectWrapper-freemarker.template.ObjectWrapper-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setObjectWrapper</h4>
<pre>public&nbsp;void&nbsp;setObjectWrapper(<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;objectWrapper)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#setObjectWrapper-freemarker.template.ObjectWrapper-">Configurable</a></code></span></div>
<div class="block">Sets the object wrapper used to wrap objects to <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s.
The default is <a href="../../freemarker/template/ObjectWrapper.html#DEFAULT_WRAPPER"><code>ObjectWrapper.DEFAULT_WRAPPER</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setObjectWrapper-freemarker.template.ObjectWrapper-">setObjectWrapper</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
</dl>
</li>
</ul>
<a name="unsetObjectWrapper--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetObjectWrapper</h4>
<pre>public&nbsp;void&nbsp;unsetObjectWrapper()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isObjectWrapperExplicitlySet--"><code>isObjectWrapperExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="isObjectWrapperExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isObjectWrapperExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isObjectWrapperExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setObjectWrapper-freemarker.template.ObjectWrapper-"><code>setObjectWrapper(ObjectWrapper)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="setLocale-java.util.Locale-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLocale</h4>
<pre>public&nbsp;void&nbsp;setLocale(java.util.Locale&nbsp;locale)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#setLocale-java.util.Locale-">Configurable</a></code></span></div>
<div class="block">Sets the locale used for number and date formatting (among others), also the locale used for searching
localized template variations when no locale was explicitly requested. On the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> level it
defaults to the default locale of system (of the JVM), for server-side application usually you should set it
explicitly in the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> to use the preferred locale of your application instead.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setLocale-java.util.Locale-">setLocale</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-"><code>getTemplate(String, Locale)</code></a></dd>
</dl>
</li>
</ul>
<a name="unsetLocale--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetLocale</h4>
<pre>public&nbsp;void&nbsp;unsetLocale()</pre>
<div class="block">Resets the setting to its default, as if it was never set.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="isLocaleExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLocaleExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isLocaleExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setLocale-java.util.Locale-"><code>setLocale(Locale)</code></a> (or equivalent) was already called on this instance, or it just holds the
default value.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="setTimeZone-java.util.TimeZone-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeZone</h4>
<pre>public&nbsp;void&nbsp;setTimeZone(java.util.TimeZone&nbsp;timeZone)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#setTimeZone-java.util.TimeZone-">Configurable</a></code></span></div>
<div class="block">Sets the time zone to use when formatting date/time values.
Defaults to the system time zone (<code>TimeZone.getDefault()</code>), regardless of the "locale" FreeMarker setting,
so in a server application you probably want to set it explicitly in the <a href="../../freemarker/core/Environment.html" title="class in freemarker.core"><code>Environment</code></a> to match the
preferred time zone of target audience (like the Web page visitor).
<p>If you or the templates set the time zone, you should probably also set
<a href="../../freemarker/core/Configurable.html#setSQLDateAndTimeTimeZone-java.util.TimeZone-"><code>Configurable.setSQLDateAndTimeTimeZone(TimeZone)</code></a>!</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setTimeZone-java.util.TimeZone-">setTimeZone</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/core/Configurable.html#setSQLDateAndTimeTimeZone-java.util.TimeZone-"><code>Configurable.setSQLDateAndTimeTimeZone(TimeZone)</code></a></dd>
</dl>
</li>
</ul>
<a name="unsetTimeZone--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetTimeZone</h4>
<pre>public&nbsp;void&nbsp;unsetTimeZone()</pre>
<div class="block">Resets the setting to its default, as if it was never set.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="isTimeZoneExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTimeZoneExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isTimeZoneExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTimeZone-java.util.TimeZone-"><code>setTimeZone(TimeZone)</code></a> (or equivalent) was already called on this instance, or it just holds the
default value.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTemplateExceptionHandler</h4>
<pre>public&nbsp;void&nbsp;setTemplateExceptionHandler(<a href="../../freemarker/template/TemplateExceptionHandler.html" title="interface in freemarker.template">TemplateExceptionHandler</a>&nbsp;templateExceptionHandler)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-">Configurable</a></code></span></div>
<div class="block">Sets the exception handler used to handle exceptions occurring inside templates.
The default is <a href="../../freemarker/template/TemplateExceptionHandler.html#DEBUG_HANDLER"><code>TemplateExceptionHandler.DEBUG_HANDLER</code></a>. The recommended values are:
<ul>
<li>In production systems: <a href="../../freemarker/template/TemplateExceptionHandler.html#RETHROW_HANDLER"><code>TemplateExceptionHandler.RETHROW_HANDLER</code></a>
<li>During development of HTML templates: <a href="../../freemarker/template/TemplateExceptionHandler.html#HTML_DEBUG_HANDLER"><code>TemplateExceptionHandler.HTML_DEBUG_HANDLER</code></a>
<li>During development of non-HTML templates: <a href="../../freemarker/template/TemplateExceptionHandler.html#DEBUG_HANDLER"><code>TemplateExceptionHandler.DEBUG_HANDLER</code></a>
</ul>
<p>All of these will let the exception propagate further, so that you can catch it around
<a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>Template.process(Object, Writer)</code></a> for example. The difference is in what they print on the output before
they do that.
<p>Note that the <a href="../../freemarker/template/TemplateExceptionHandler.html" title="interface in freemarker.template"><code>TemplateExceptionHandler</code></a> is not meant to be used for generating HTTP error pages.
Neither is it meant to be used to roll back the printed output. These should be solved outside template
processing when the exception raises from <a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-"><code>Template.process</code></a>.
<a href="../../freemarker/template/TemplateExceptionHandler.html" title="interface in freemarker.template"><code>TemplateExceptionHandler</code></a> meant to be used if you want to include special content <em>in</em> the template
output, or if you want to suppress certain exceptions. If you suppress an exception, and the
<a href="../../freemarker/core/Configurable.html#getLogTemplateExceptions--"><code>Configurable.getLogTemplateExceptions()</code></a> returns <code>false</code>, then it's the responsibility of the
<a href="../../freemarker/template/TemplateExceptionHandler.html" title="interface in freemarker.template"><code>TemplateExceptionHandler</code></a> to log the exception (if you want it to be logged).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-">setTemplateExceptionHandler</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/core/Configurable.html#setLogTemplateExceptions-boolean-"><code>Configurable.setLogTemplateExceptions(boolean)</code></a>,
<a href="../../freemarker/core/Configurable.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-"><code>Configurable.setAttemptExceptionReporter(AttemptExceptionReporter)</code></a></dd>
</dl>
</li>
</ul>
<a name="unsetTemplateExceptionHandler--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetTemplateExceptionHandler</h4>
<pre>public&nbsp;void&nbsp;unsetTemplateExceptionHandler()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isTemplateExceptionHandlerExplicitlySet--"><code>isTemplateExceptionHandlerExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="isTemplateExceptionHandlerExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTemplateExceptionHandlerExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isTemplateExceptionHandlerExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-"><code>setTemplateExceptionHandler(TemplateExceptionHandler)</code></a> (or equivalent) was already called on
this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAttemptExceptionReporter</h4>
<pre>public&nbsp;void&nbsp;setAttemptExceptionReporter(<a href="../../freemarker/template/AttemptExceptionReporter.html" title="interface in freemarker.template">AttemptExceptionReporter</a>&nbsp;attemptExceptionReporter)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-">Configurable</a></code></span></div>
<div class="block">Specifies how exceptions handled (and hence suppressed) by an <code>#attempt</code> blocks will be logged or otherwise
reported. The default value is <a href="../../freemarker/template/AttemptExceptionReporter.html#LOG_ERROR_REPORTER"><code>AttemptExceptionReporter.LOG_ERROR_REPORTER</code></a>.
<p>Note that <code>#attempt</code> is not supposed to be a general purpose error handler mechanism, like <code>try</code>
is in Java. It's for decreasing the impact of unexpected errors, by making it possible that only part of the
page is going down, instead of the whole page. But it's still an error, something that someone should fix. So the
error should be reported, not just ignored in a custom <a href="../../freemarker/template/AttemptExceptionReporter.html" title="interface in freemarker.template"><code>AttemptExceptionReporter</code></a>-s.
<p>The <a href="../../freemarker/template/AttemptExceptionReporter.html" title="interface in freemarker.template"><code>AttemptExceptionReporter</code></a> is invoked regardless of the value of the
<a href="../../freemarker/core/Configurable.html#setLogTemplateExceptions-boolean-"><code>log_template_exceptions</code></a> setting.
The <a href="../../freemarker/template/AttemptExceptionReporter.html" title="interface in freemarker.template"><code>AttemptExceptionReporter</code></a> is not invoked if the <a href="../../freemarker/template/TemplateExceptionHandler.html" title="interface in freemarker.template"><code>TemplateExceptionHandler</code></a> has suppressed the
exception.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-">setAttemptExceptionReporter</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
</dl>
</li>
</ul>
<a name="unsetAttemptExceptionReporter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetAttemptExceptionReporter</h4>
<pre>public&nbsp;void&nbsp;unsetAttemptExceptionReporter()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isAttemptExceptionReporterExplicitlySet--"><code>isAttemptExceptionReporterExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.27</dd>
</dl>
</li>
</ul>
<a name="isAttemptExceptionReporterExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAttemptExceptionReporterExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isAttemptExceptionReporterExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-"><code>setAttemptExceptionReporter(AttemptExceptionReporter)</code></a> (or equivalent) was already called on
this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.27</dd>
</dl>
</li>
</ul>
<a name="setLogTemplateExceptions-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLogTemplateExceptions</h4>
<pre>public&nbsp;void&nbsp;setLogTemplateExceptions(boolean&nbsp;value)</pre>
<div class="block">Specifies if <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>-s thrown by template processing are logged by FreeMarker or not. The
default is <code>true</code> for backward compatibility, but that results in logging the exception twice in properly
written applications, because there the <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a> thrown by the public FreeMarker API is also
logged by the caller (even if only as the cause exception of a higher level exception). Hence, in modern
applications it should be set to <code>false</code>. Note that this setting has no effect on the logging of exceptions
caught by <code>#attempt</code>; by default those are always logged as errors (because those exceptions won't bubble
up to the API caller), however, that can be changed with the <a href="../../freemarker/core/Configurable.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-"><code>attempt_exception_reporter</code></a> setting.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setLogTemplateExceptions-boolean-">setLogTemplateExceptions</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="unsetLogTemplateExceptions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetLogTemplateExceptions</h4>
<pre>public&nbsp;void&nbsp;unsetLogTemplateExceptions()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isTemplateExceptionHandlerExplicitlySet--"><code>isTemplateExceptionHandlerExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="isLogTemplateExceptionsExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLogTemplateExceptionsExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isLogTemplateExceptionsExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setLogTemplateExceptions-boolean-"><code>setLogTemplateExceptions(boolean)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="setWrapUncheckedExceptions-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWrapUncheckedExceptions</h4>
<pre>public&nbsp;void&nbsp;setWrapUncheckedExceptions(boolean&nbsp;value)</pre>
<div class="block">Specifies if unchecked exceptions thrown during expression evaluation or during executing custom directives (and
transform) will be wrapped into <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>-s, or will bubble up to the caller of
<a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-"><code>Template.process(Object, Writer, ObjectWrapper)</code></a> as is. The default is <code>false</code> for backward
compatibility (as some applications catch certain unchecked exceptions thrown by the template processing to do
something special), but the recommended value is <code>true</code>.
When this is <code>true</code>, the unchecked exceptions will be wrapped into a <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>-s, thus the
exception will include the location in the template (not
just the Java stack trace). Another consequence of the wrapping is that the <a href="../../freemarker/template/TemplateExceptionHandler.html" title="interface in freemarker.template"><code>TemplateExceptionHandler</code></a> will
be invoked for the exception (as that only handles <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>-s, it wasn't invoked for unchecked
exceptions). When this setting is <code>false</code>, unchecked exception will be thrown by
<a href="../../freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-freemarker.template.ObjectWrapper-"><code>Template.process(Object, Writer, ObjectWrapper)</code></a>.
Note that plain Java methods called from templates aren't user defined <a href="../../freemarker/template/TemplateMethodModel.html" title="interface in freemarker.template"><code>TemplateMethodModel</code></a>-s, and have
always wrapped the thrown exception into <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template"><code>TemplateException</code></a>, regardless of this setting.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setWrapUncheckedExceptions-boolean-">setWrapUncheckedExceptions</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.27</dd>
</dl>
</li>
</ul>
<a name="unsetWrapUncheckedExceptions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetWrapUncheckedExceptions</h4>
<pre>public&nbsp;void&nbsp;unsetWrapUncheckedExceptions()</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.27</dd>
</dl>
</li>
</ul>
<a name="isWrapUncheckedExceptionsExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWrapUncheckedExceptionsExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isWrapUncheckedExceptionsExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setWrapUncheckedExceptions-boolean-"><code>setWrapUncheckedExceptions(boolean)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.27</dd>
</dl>
</li>
</ul>
<a name="getStrictSyntaxMode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStrictSyntaxMode</h4>
<pre>public&nbsp;boolean&nbsp;getStrictSyntaxMode()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setStrictSyntaxMode-boolean-"><code>setStrictSyntaxMode(boolean)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getStrictSyntaxMode--">getStrictSyntaxMode</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
</dl>
</li>
</ul>
<a name="setIncompatibleImprovements-freemarker.template.Version-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIncompatibleImprovements</h4>
<pre>public&nbsp;void&nbsp;setIncompatibleImprovements(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</pre>
<div class="block">Use <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a> instead if possible; see the meaning of the parameter there.
<p>Do NOT ever use <a href="../../freemarker/template/Configuration.html#getVersion--"><code>getVersion()</code></a> to set the "incompatible improvements". Always use a fixed value, like
<a href="../../freemarker/template/Configuration.html#VERSION_2_3_30"><code>VERSION_2_3_30</code></a>. Otherwise your application can break as you upgrade FreeMarker. (As of 2.3.30, doing
this will be logged as an error. As of 2.4.0, it will be probably disallowed, by throwing exception.)
<p>If the default value of a setting depends on the <code>incompatibleImprovements</code> and the value of that setting
was never set in this <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> object through the public API, its value will be set to the default
value appropriate for the new <code>incompatibleImprovements</code>. (This adjustment of a setting value doesn't
count as setting that setting, so setting <code>incompatibleImprovements</code> for multiple times also works as
expected.) Note that if the <code>template_loader</code> have to be changed because of this, the template cache will
be emptied.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If <code>incompatibleImmprovements</code> refers to a version that wasn't released yet when the currently
used FreeMarker version was released, or is less than 2.3.0, or is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
</dl>
</li>
</ul>
<a name="getIncompatibleImprovements--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIncompatibleImprovements</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;getIncompatibleImprovements()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html#getIncompatibleImprovements--">ParserConfiguration</a></code></span></div>
<div class="block">See <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getIncompatibleImprovements--">getIncompatibleImprovements</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Never <code>null</code>.</dd>
<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#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a></dd>
</dl>
</li>
</ul>
<a name="setIncompatibleEnhancements-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIncompatibleEnhancements</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;setIncompatibleEnhancements(java.lang.String&nbsp;version)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a>, or
as last chance, <a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a> instead.</span></div>
</li>
</ul>
<a name="getIncompatibleEnhancements--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIncompatibleEnhancements</h4>
<pre>@Deprecated
public&nbsp;java.lang.String&nbsp;getIncompatibleEnhancements()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a> instead.</span></div>
</li>
</ul>
<a name="getParsedIncompatibleEnhancements--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParsedIncompatibleEnhancements</h4>
<pre>@Deprecated
public&nbsp;int&nbsp;getParsedIncompatibleEnhancements()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a> instead.</span></div>
</li>
</ul>
<a name="setWhitespaceStripping-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWhitespaceStripping</h4>
<pre>public&nbsp;void&nbsp;setWhitespaceStripping(boolean&nbsp;b)</pre>
<div class="block">Sets whether the FTL parser will try to remove
superfluous white-space around certain FTL tags.</div>
</li>
</ul>
<a name="getWhitespaceStripping--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWhitespaceStripping</h4>
<pre>public&nbsp;boolean&nbsp;getWhitespaceStripping()</pre>
<div class="block">Gets whether the FTL parser will try to remove
superfluous white-space around certain FTL tags.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getWhitespaceStripping--">getWhitespaceStripping</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setWhitespaceStripping-boolean-"><code>setWhitespaceStripping(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="setAutoEscapingPolicy-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAutoEscapingPolicy</h4>
<pre>public&nbsp;void&nbsp;setAutoEscapingPolicy(int&nbsp;autoEscapingPolicy)</pre>
<div class="block">Sets when auto-escaping should be enabled depending on the current <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">output format</a>;
default is <a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</code></a>.
<p>Note that the default output format, <a href="../../freemarker/core/UndefinedOutputFormat.html" title="class in freemarker.core"><code>UndefinedOutputFormat</code></a>, is a non-escaping format, so there
auto-escaping will be off.
<p>Note that the templates can turn auto-escaping on/off locally with directives like
<code>&lt;#ftl auto_esc=...&gt;</code>, <code>&lt;#autoesc&gt;...&lt;/#autoesc&gt;</code>, and <code>&lt;#noautoesc&gt;...&lt;/#noautoesc&gt;</code>, which
are ignoring the auto-escaping policy.
<p><b>About auto-escaping</b></p>
<p>
Auto-escaping has significance when a value is printed with <code>${...}</code> (or <code>#{...}</code>). If
auto-escaping is on, FreeMarker will assume that the value is plain text (as opposed to markup or some kind of
rich text), so it will escape it according the current output format (see <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a>
and <a href="../../freemarker/core/TemplateConfiguration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>TemplateConfiguration.setOutputFormat(OutputFormat)</code></a>). If auto-escaping is off, FreeMarker will assume
that the string value is already in the output format, so it prints it as is to the output.
<p>Further notes on auto-escaping:
<ul>
<li>When printing numbers, dates, and other kind of non-string values with <code>${...}</code>, they will be
first converted to string (according the formatting settings and locale), then they are escaped just like
string values.
<li>When printing <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>-s, they aren't escaped again (they are already escaped).
<li>Auto-escaping doesn't do anything if the current output format isn't an <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a>.
That's the case for the default output format, <a href="../../freemarker/core/UndefinedOutputFormat.html" title="class in freemarker.core"><code>UndefinedOutputFormat</code></a>, and also for
<a href="../../freemarker/core/PlainTextOutputFormat.html" title="class in freemarker.core"><code>PlainTextOutputFormat</code></a>.
<li>The output format inside a string literal expression is always <a href="../../freemarker/core/PlainTextOutputFormat.html" title="class in freemarker.core"><code>PlainTextOutputFormat</code></a>
(regardless of the output format of the containing template), which is a non-escaping format. Thus for
example, with <code>&lt;#assign s = "foo${bar}"&gt;</code>, <code>bar</code> will always get into <code>s</code>
without escaping, but with <code>&lt;#assign s&gt;foo${bar}&lt;#assign&gt;</code> it may will be escaped.
</ul>
<p>Note that what you set here is just a default, which can be overridden for individual templates via
<a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(TemplateConfigurationFactory)</code></a>. This setting is also overridden by the standard file
extensions; see them at <a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>autoEscapingPolicy</code> - One of the <a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</code></a>,
<a href="../../freemarker/template/Configuration.html#ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY</code></a>, and <a href="../../freemarker/template/Configuration.html#DISABLE_AUTO_ESCAPING_POLICY"><code>DISABLE_AUTO_ESCAPING_POLICY</code></a> constants.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/core/TemplateConfiguration.html#setAutoEscapingPolicy-int-"><code>TemplateConfiguration.setAutoEscapingPolicy(int)</code></a>,
<a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a>,
<a href="../../freemarker/core/TemplateConfiguration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>TemplateConfiguration.setOutputFormat(OutputFormat)</code></a></dd>
</dl>
</li>
</ul>
<a name="getAutoEscapingPolicy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAutoEscapingPolicy</h4>
<pre>public&nbsp;int&nbsp;getAutoEscapingPolicy()</pre>
<div class="block">Getter pair of <a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>setAutoEscapingPolicy(int)</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getAutoEscapingPolicy--">getAutoEscapingPolicy</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="setOutputFormat-freemarker.core.OutputFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOutputFormat</h4>
<pre>public&nbsp;void&nbsp;setOutputFormat(<a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a>&nbsp;outputFormat)</pre>
<div class="block">Sets the default output format. Usually, you should leave this on its default, which is
<a href="../../freemarker/core/UndefinedOutputFormat.html#INSTANCE"><code>UndefinedOutputFormat.INSTANCE</code></a>, and then use standard file extensions like "ftlh" (for HTML) or "ftlx"
(for XML) and ensure that <a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a> is <code>true</code> (see more there).
Where you can't use the standard extensions, templates still can be associated to output formats with
patterns matching their name (their path) using <a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(TemplateConfigurationFactory)</code></a>.
But if all templates will have the same output format, you may use <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a> after
all, to a value like <a href="../../freemarker/core/HTMLOutputFormat.html#INSTANCE"><code>HTMLOutputFormat.INSTANCE</code></a>, <a href="../../freemarker/core/XMLOutputFormat.html#INSTANCE"><code>XMLOutputFormat.INSTANCE</code></a>, etc. Also note
that templates can specify their own output format like <code>&lt;#ftl output_format="HTML"&gt;</code>, which overrides any configuration settings.
<p>
The output format is mostly important because of auto-escaping (see <a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>setAutoEscapingPolicy(int)</code></a>), but
maybe also used by the embedding application to set the HTTP response MIME type, etc.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outputFormat</code> - Not <code>null</code>; use <a href="../../freemarker/core/UndefinedOutputFormat.html#INSTANCE"><code>UndefinedOutputFormat.INSTANCE</code></a> instead.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>setRegisteredCustomOutputFormats(Collection)</code></a>,
<a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(TemplateConfigurationFactory)</code></a>,
<a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a>,
<a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>setAutoEscapingPolicy(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">Getter pair of <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getOutputFormat--">getOutputFormat</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="isOutputFormatExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOutputFormatExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isOutputFormatExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="unsetOutputFormat--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetOutputFormat</h4>
<pre>public&nbsp;void&nbsp;unsetOutputFormat()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isOutputFormatExplicitlySet--"><code>isOutputFormatExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="getOutputFormat-java.lang.String-">
<!-- -->
</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(java.lang.String&nbsp;name)
throws <a href="../../freemarker/core/UnregisteredOutputFormatException.html" title="class in freemarker.core">UnregisteredOutputFormatException</a></pre>
<div class="block">Returns the output format for a name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - Either the name of the output format as it was registered with
<a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>setRegisteredCustomOutputFormats(Collection)</code></a>, or a combined output format name.
A combined output format is created ad-hoc from the registered formats. For example, if you need RTF
embedded into HTML, the name will be <code>HTML{RTF}</code>, where "HTML" and "RTF" refer to the
existing formats. This logic can be used recursively, so for example <code>XML{HTML{RTF}}</code> is
also valid.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Not <code>null</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/core/UnregisteredOutputFormatException.html" title="class in freemarker.core">UnregisteredOutputFormatException</a></code> - If there's no output format registered with the given name.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If the usage of <code>{</code> and <code>}</code> in the name is syntactically wrong, or if not all
<a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a>-s are <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a>-s in the <code>...{...}</code> expression.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="setRegisteredCustomOutputFormats-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRegisteredCustomOutputFormats</h4>
<pre>public&nbsp;void&nbsp;setRegisteredCustomOutputFormats(java.util.Collection&lt;? extends <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a>&gt;&nbsp;registeredCustomOutputFormats)</pre>
<div class="block">Sets the custom output formats that can be referred by their unique name (<a href="../../freemarker/core/OutputFormat.html#getName--"><code>OutputFormat.getName()</code></a>) from
templates. Names are also used to look up the <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> for standard file extensions; see them at
<a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a>.
<p>
When there's a clash between a custom output format name and a standard output format name, the custom format
will win, thus you can override the meaning of standard output format names. Except, it's not allowed to override
<a href="../../freemarker/core/UndefinedOutputFormat.html" title="class in freemarker.core"><code>UndefinedOutputFormat</code></a> and <a href="../../freemarker/core/PlainTextOutputFormat.html" title="class in freemarker.core"><code>PlainTextOutputFormat</code></a>.
<p>
The default value is an empty collection.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>registeredCustomOutputFormats</code> - The collection of the <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a>-s, each must be different and has a unique name (
<a href="../../freemarker/core/OutputFormat.html#getName--"><code>OutputFormat.getName()</code></a>) within this collection.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - When multiple different <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a>-s have the same name in the parameter collection. When
the same <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> object occurs for multiple times in the collection. If an
<a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> name is 0 long. If an <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> name doesn't start with letter or
digit. If an <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> name contains <code>'+'</code> or <code>'{'</code> or <code>'}'</code>.
If an <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a> name equals to <a href="../../freemarker/core/UndefinedOutputFormat.html#getName--"><code>UndefinedOutputFormat.getName()</code></a> or
<a href="../../freemarker/core/PlainTextOutputFormat.html#getName--"><code>PlainTextOutputFormat.getName()</code></a>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="getRegisteredCustomOutputFormats--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegisteredCustomOutputFormats</h4>
<pre>public&nbsp;java.util.Collection&lt;? extends <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core">OutputFormat</a>&gt;&nbsp;getRegisteredCustomOutputFormats()</pre>
<div class="block">Getter pair of <a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>setRegisteredCustomOutputFormats(Collection)</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="setRecognizeStandardFileExtensions-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRecognizeStandardFileExtensions</h4>
<pre>public&nbsp;void&nbsp;setRecognizeStandardFileExtensions(boolean&nbsp;recognizeStandardFileExtensions)</pre>
<div class="block">Sets if the "file" extension part of the source name (<a href="../../freemarker/template/Template.html#getSourceName--"><code>Template.getSourceName()</code></a>) will influence certain
parsing settings. For backward compatibility, it defaults to <code>false</code> if
<a href="../../freemarker/template/Configuration.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a> is less than 2.3.24. Starting from <code>incompatibleImprovements</code>
2.3.24, it defaults to <code>true</code>, so the following standard file extensions take their effect:
<ul>
<li><code>ftlh</code>: Sets <a href="../../freemarker/core/TemplateConfiguration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>outputFormat</code></a> to
<code>"HTML"</code> (i.e., <a href="../../freemarker/core/HTMLOutputFormat.html#INSTANCE"><code>HTMLOutputFormat.INSTANCE</code></a>, unless the <code>"HTML"</code> name is overridden by
<a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>setRegisteredCustomOutputFormats(Collection)</code></a>) and
<a href="../../freemarker/core/TemplateConfiguration.html#setAutoEscapingPolicy-int-"><code>autoEscapingPolicy</code></a> to
<a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</code></a>.
<li><code>ftlx</code>: Sets <a href="../../freemarker/core/TemplateConfiguration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>outputFormat</code></a> to
<code>"XML"</code> (i.e., <a href="../../freemarker/core/XMLOutputFormat.html#INSTANCE"><code>XMLOutputFormat.INSTANCE</code></a>, unless the <code>"XML"</code> name is overridden by
<a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>setRegisteredCustomOutputFormats(Collection)</code></a>) and
<a href="../../freemarker/core/TemplateConfiguration.html#setAutoEscapingPolicy-int-"><code>autoEscapingPolicy</code></a> to
<a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</code></a>.
</ul>
<p>These file extensions are not case sensitive. The file extension is the part after the last dot in the source
name. If the source name contains no dot, then it has no file extension.
<p>The settings activated by these file extensions override the setting values dictated by
<a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(TemplateConfigurationFactory)</code></a>.</div>
</li>
</ul>
<a name="unsetRecognizeStandardFileExtensions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetRecognizeStandardFileExtensions</h4>
<pre>public&nbsp;void&nbsp;unsetRecognizeStandardFileExtensions()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isRecognizeStandardFileExtensionsExplicitlySet--"><code>isRecognizeStandardFileExtensionsExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="isRecognizeStandardFileExtensionsExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRecognizeStandardFileExtensionsExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isRecognizeStandardFileExtensionsExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a> (or equivalent) was already called on this
instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="getRecognizeStandardFileExtensions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRecognizeStandardFileExtensions</h4>
<pre>public&nbsp;boolean&nbsp;getRecognizeStandardFileExtensions()</pre>
<div class="block">Getter pair of <a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getRecognizeStandardFileExtensions--">getRecognizeStandardFileExtensions</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="setCFormat-freemarker.core.CFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCFormat</h4>
<pre>public&nbsp;void&nbsp;setCFormat(<a href="../../freemarker/core/CFormat.html" title="class in freemarker.core">CFormat</a>&nbsp;cFormat)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#setCFormat-freemarker.core.CFormat-">Configurable</a></code></span></div>
<div class="block">Sets the format (usually a computer language) used for <code>?c</code>, <code>?cn</code>, and for the
<code>"c"</code> (<code>"computer"</code> before 2.3.32) <a href="../../freemarker/core/Configurable.html#setNumberFormat-java.lang.String-"><code>number_format</code></a>, and the
<code>"c"</code> <a href="../../freemarker/core/Configurable.html#setBooleanFormat-java.lang.String-"><code>boolean_format</code></a>.
<p>The default value depends on <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatible_improvements</code></a>.
If that's 2.3.32 or higher, then it's <a href="../../freemarker/core/JavaScriptOrJSONCFormat.html#INSTANCE"><code>"JavaScript or JSON"</code></a>,
otherwise it's <a href="../../freemarker/core/LegacyCFormat.html#INSTANCE"><code>"legacy"</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setCFormat-freemarker.core.CFormat-">setCFormat</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
</dl>
</li>
</ul>
<a name="unsetCFormat--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetCFormat</h4>
<pre>public&nbsp;void&nbsp;unsetCFormat()</pre>
<div class="block">Resets the setting to its default, as if it was never set. This means that when you change the
<code>incompatibe_improvements</code> setting later, the default will also change as appropriate. Also
<a href="../../freemarker/template/Configuration.html#isCFormatExplicitlySet--"><code>isCFormatExplicitlySet()</code></a> will return <code>false</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.32</dd>
</dl>
</li>
</ul>
<a name="isCFormatExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCFormatExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isCFormatExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setCFormat-freemarker.core.CFormat-"><code>setCFormat(CFormat)</code></a> (or equivalent) was already called on this instance.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.32</dd>
</dl>
</li>
</ul>
<a name="setTagSyntax-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTagSyntax</h4>
<pre>public&nbsp;void&nbsp;setTagSyntax(int&nbsp;tagSyntax)</pre>
<div class="block">Determines the tag syntax (like <code>&lt;#if x&gt;</code> VS <code>[#if x]</code>) of the template files
that has no <code>#ftl</code> header to decide that. Don't confuse this with the interpolation syntax
(<a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-"><code>setInterpolationSyntax(int)</code></a>); they are independent.
<p>The <code>tagSyntax</code> parameter must be one of:
<ul>
<li><a href="../../freemarker/template/Configuration.html#AUTO_DETECT_TAG_SYNTAX"><code>AUTO_DETECT_TAG_SYNTAX</code></a>:
Use the syntax of the first FreeMarker tag (can be anything, like <tt>#list</tt>,
<tt>#include</tt>, user defined, etc.)
<li><a href="../../freemarker/template/Configuration.html#ANGLE_BRACKET_TAG_SYNTAX"><code>ANGLE_BRACKET_TAG_SYNTAX</code></a>:
Use the angle bracket tag syntax (the normal syntax), like <code>&lt;#include ...&gt;</code>
<li><a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_TAG_SYNTAX"><code>SQUARE_BRACKET_TAG_SYNTAX</code></a>:
Use the square bracket tag syntax, like <code>[#include ...]</code>. Note that this does <em>not</em> change
<code>${x}</code> to <code>[=...]</code>; that's <em>interpolation</em> syntax, so use
<a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-"><code>setInterpolationSyntax(int)</code></a> for that.
</ul>
<p>In FreeMarker 2.3.x <a href="../../freemarker/template/Configuration.html#ANGLE_BRACKET_TAG_SYNTAX"><code>ANGLE_BRACKET_TAG_SYNTAX</code></a> is the
default for better backward compatibility. Starting from 2.4.x <a href="../../freemarker/template/Configuration.html#AUTO_DETECT_TAG_SYNTAX"><code>AUTO_DETECT_TAG_SYNTAX</code></a> is the default, so it's recommended to use
that even for 2.3.x.
<p>This setting is ignored for the templates that have <code>ftl</code> directive in
it. For those templates the syntax used for the <code>ftl</code> directive determines
the syntax.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-"><code>setInterpolationSyntax(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="getTagSyntax--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTagSyntax</h4>
<pre>public&nbsp;int&nbsp;getTagSyntax()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTagSyntax-int-"><code>setTagSyntax(int)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getTagSyntax--">getTagSyntax</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
</dl>
</li>
</ul>
<a name="setInterpolationSyntax-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInterpolationSyntax</h4>
<pre>public&nbsp;void&nbsp;setInterpolationSyntax(int&nbsp;interpolationSyntax)</pre>
<div class="block">Determines the interpolation syntax (like <code>${x}</code> VS <code>[=x]</code>) of the template files. Don't
confuse this with the tag syntax (<a href="../../freemarker/template/Configuration.html#setTagSyntax-int-"><code>setTagSyntax(int)</code></a>); they are independent.
<p>
The <code>interpolationSyntax</code> parameter must be one of <a href="../../freemarker/template/Configuration.html#LEGACY_INTERPOLATION_SYNTAX"><code>LEGACY_INTERPOLATION_SYNTAX</code></a>,
<a href="../../freemarker/template/Configuration.html#DOLLAR_INTERPOLATION_SYNTAX"><code>DOLLAR_INTERPOLATION_SYNTAX</code></a>, and <a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_INTERPOLATION_SYNTAX"><code>SQUARE_BRACKET_INTERPOLATION_SYNTAX</code></a>.
Note that <a href="../../freemarker/template/Configuration.html#SQUARE_BRACKET_INTERPOLATION_SYNTAX"><code>SQUARE_BRACKET_INTERPOLATION_SYNTAX</code></a> does <em>not</em> change <code>&lt;#if x&gt;</code> to
<code>[#if x]</code>; that's <em>tag</em> syntax, so use <a href="../../freemarker/template/Configuration.html#setTagSyntax-int-"><code>setTagSyntax(int)</code></a> for that.</div>
<dl>
<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#setTagSyntax-int-"><code>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">The getter pair of <a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-"><code>setInterpolationSyntax(int)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getInterpolationSyntax--">getInterpolationSyntax</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.28</dd>
</dl>
</li>
</ul>
<a name="setNamingConvention-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNamingConvention</h4>
<pre>public&nbsp;void&nbsp;setNamingConvention(int&nbsp;namingConvention)</pre>
<div class="block">Sets the naming convention used for the identifiers that are part of the template language. The available naming
conventions are legacy (directive (tag) names are all-lower-case <code>likethis</code>, others are snake case
<code>like_this</code>), and camel case (<code>likeThis</code>). The default is auto-detect, which detects the naming
convention used and enforces that same naming convention for the whole template.
<p>
This setting doesn't influence what naming convention is used for the setting names outside templates. Also, it
won't ever convert the names of user-defined things, like of data-model members, or the names of user defined
macros/functions. It only influences the names of the built-in directives (<code>#elseIf</code> VS <code>elseif</code>),
built-ins (<code>?upper_case</code> VS <code>?upperCase</code> ), special variables (<code>.data_model</code> VS
<code>.dataModel</code>).
<p>
Which convention to use: FreeMarker prior to 2.3.23 has only supported
<a href="../../freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION"><code>LEGACY_NAMING_CONVENTION</code></a>, so that's how most templates and examples out there are written
as of 2015. But as templates today are mostly written by programmers and often access Java API-s which already
use camel case, <a href="../../freemarker/template/Configuration.html#CAMEL_CASE_NAMING_CONVENTION"><code>CAMEL_CASE_NAMING_CONVENTION</code></a> is the recommended option for most projects.
However, it's no necessary to make a application-wide decision; see auto-detection below.
<p>
FreeMarker will decide the naming convention automatically for each template individually when this setting is
set to <a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION"><code>AUTO_DETECT_NAMING_CONVENTION</code></a> (which is the default). The naming convention of a template is
decided when the first core (non-user-defined) identifier is met during parsing (not during processing) where the
naming convention is relevant (like for <code>s?upperCase</code> or <code>s?upper_case</code> it's relevant, but for
<code>s?length</code> it isn't). At that point, the naming convention of the template is decided, and any later core
identifier that uses a different convention will be a parsing error. As the naming convention is decided per
template, it's not a problem if a template and the other template it <code>#include</code>-s/<code>#import</code> uses a
different convention.
<p>
FreeMarker always enforces the same naming convention to be used consistently within the same template "file".
Additionally, when this setting is set to non-<a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION"><code>AUTO_DETECT_NAMING_CONVENTION</code></a>, the selected naming
convention is enforced on all templates. Thus such a setup can be used to enforce an application-wide naming
convention.
<p>
Non-strict tags (a long deprecated syntax from FreeMarker 1, activated via <a href="../../freemarker/template/Configuration.html#setStrictSyntaxMode-boolean-"><code>setStrictSyntaxMode(boolean)</code></a>)
are only recognized as FTL tags when they are using the <a href="../../freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION"><code>LEGACY_NAMING_CONVENTION</code></a> syntax,
regardless of this setting. As they aren't exempt from the naming convention consistency enforcement, generally,
you can't use strict <a href="../../freemarker/template/Configuration.html#CAMEL_CASE_NAMING_CONVENTION"><code>CAMEL_CASE_NAMING_CONVENTION</code></a> tags mixed with non-strict tags.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>namingConvention</code> - One of the <a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION"><code>AUTO_DETECT_NAMING_CONVENTION</code></a> or <a href="../../freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION"><code>LEGACY_NAMING_CONVENTION</code></a>
<a href="../../freemarker/template/Configuration.html#CAMEL_CASE_NAMING_CONVENTION"><code>CAMEL_CASE_NAMING_CONVENTION</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - If the parameter isn't one of the valid constants.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.23</dd>
</dl>
</li>
</ul>
<a name="getNamingConvention--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamingConvention</h4>
<pre>public&nbsp;int&nbsp;getNamingConvention()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setNamingConvention-int-"><code>setNamingConvention(int)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getNamingConvention--">getNamingConvention</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.23</dd>
</dl>
</li>
</ul>
<a name="setTabSize-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTabSize</h4>
<pre>public&nbsp;void&nbsp;setTabSize(int&nbsp;tabSize)</pre>
<div class="block">Sets the assumed display width of the tab character (ASCII 9), which influences the column number shown in error
messages (or the column number you get through other API-s). So for example if the users edit templates in an
editor where the tab width is set to 4, you should set this to 4 so that the column numbers printed by FreeMarker
will match the column number shown in the editor. This setting doesn't affect the output of templates, as a tab
in the template will remain a tab in the output too. If you set this setting to 1, then tab characters will be
kept in the return value of <a href="../../freemarker/template/Template.html#getSource-int-int-int-int-"><code>Template.getSource(int, int, int, int)</code></a>, otherwise they will be replaced with
the appropriate number of spaces.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tabSize</code> - At least 1, at most 256.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.25</dd>
</dl>
</li>
</ul>
<a name="getTabSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTabSize</h4>
<pre>public&nbsp;int&nbsp;getTabSize()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setTabSize-int-"><code>setTabSize(int)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/ParserConfiguration.html#getTabSize--">getTabSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../freemarker/core/ParserConfiguration.html" title="interface in freemarker.core">ParserConfiguration</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.25</dd>
</dl>
</li>
</ul>
<a name="getFallbackOnNullLoopVariable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFallbackOnNullLoopVariable</h4>
<pre>public&nbsp;boolean&nbsp;getFallbackOnNullLoopVariable()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setFallbackOnNullLoopVariable-boolean-"><code>setFallbackOnNullLoopVariable(boolean)</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.29</dd>
</dl>
</li>
</ul>
<a name="setFallbackOnNullLoopVariable-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFallbackOnNullLoopVariable</h4>
<pre>public&nbsp;void&nbsp;setFallbackOnNullLoopVariable(boolean&nbsp;fallbackOnNullLoopVariable)</pre>
<div class="block">Specifies the behavior when reading a loop variable (like <code>i</code> in <code>&lt;#list items as i&gt;</code>, or in
<code>&lt;@myMacro items; i&gt;</code>) that's <code>null</code> (missing); if <code>true</code>, FreeMarker will look for a variable
with the same name in higher variable scopes, or if <code>false</code> the variable will be simply <code>null</code>
(missing). For backward compatibility the default is <code>true</code>. The recommended value for new projects is
<code>false</code>, as otherwise adding new variables to higher scopes (typically to the data-model) can
unintentionally change the behavior of templates. You have to be quite unlucky for that to happen though:
The newly added variable has to have the same name as the loop variable, and there must be some null (missing)
values in what you loop through.
<p>This setting doesn't influence the behavior of lambdas, like <code>items?filter(i -&gt; i?hasContent)</code>, as they
never had this problem. Reading a lambda argument never falls back to higher scopes.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.29</dd>
</dl>
</li>
</ul>
<a name="getTemplate-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getTemplate(java.lang.String&nbsp;name)
throws <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a>,
<a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a>,
<a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a>,
java.io.IOException</pre>
<div class="block">Retrieves the template with the given name from the template cache, loading it into the cache first if it's
missing/staled.
<p>
This is a shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, null, null, null, true, false)</code></a>; see more details there.
<p>
See <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> for an example of basic usage.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a></code></dd>
<dd><code><a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a></code></dd>
<dd><code><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getTemplate-java.lang.String-java.util.Locale-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getTemplate(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale)
throws <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a>,
<a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a>,
<a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a>,
java.io.IOException</pre>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, null, true, false)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a></code></dd>
<dd><code><a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a></code></dd>
<dd><code><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getTemplate-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getTemplate(java.lang.String&nbsp;name,
java.lang.String&nbsp;encoding)
throws <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a>,
<a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a>,
<a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a>,
java.io.IOException</pre>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, null, null, encoding, true, false)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a></code></dd>
<dd><code><a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a></code></dd>
<dd><code><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getTemplate-java.lang.String-java.util.Locale-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getTemplate(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding)
throws <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a>,
<a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a>,
<a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a>,
java.io.IOException</pre>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, encoding, true, false)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a></code></dd>
<dd><code><a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a></code></dd>
<dd><code><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getTemplate-java.lang.String-java.util.Locale-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getTemplate(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding,
boolean&nbsp;parseAsFTL)
throws <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a>,
<a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a>,
<a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a>,
java.io.IOException</pre>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, encoding, parseAsFTL, false)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a></code></dd>
<dd><code><a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a></code></dd>
<dd><code><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getTemplate-java.lang.String-java.util.Locale-java.lang.String-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getTemplate(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding,
boolean&nbsp;parseAsFTL,
boolean&nbsp;ignoreMissing)
throws <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a>,
<a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a>,
<a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a>,
java.io.IOException</pre>
<div class="block">Shorthand for <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(name, locale, null, encoding, parseAsFTL, ignoreMissing)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a></code></dd>
<dd><code><a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a></code></dd>
<dd><code><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTemplate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/Template.html" title="class in freemarker.template">Template</a>&nbsp;getTemplate(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.Object&nbsp;customLookupCondition,
java.lang.String&nbsp;encoding,
boolean&nbsp;parseAsFTL,
boolean&nbsp;ignoreMissing)
throws <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a>,
<a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a>,
<a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a>,
java.io.IOException</pre>
<div class="block">Retrieves the template with the given name (and according the specified further parameters) from the template
cache, loading it into the cache first if it's missing/staled.
<p>
This method is thread-safe.
<p>
See <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> for an example of basic usage.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The name or path of the template, which is not a real path, but interpreted inside the current
<a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>. Can't be <code>null</code>. The exact syntax of the name depends on the underlying
<a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>, but the cache makes some assumptions. First, the name is expected to be a
hierarchical path, with path components separated by a slash character (not with backslash!). The path
(the name) given here must <em>not</em> begin with slash; it's always interpreted relative to the
"template root directory". Then, the <code>..</code> and <code>.</code> path meta-elements will be resolved. For
example, if the name is <code>a/../b/./c.ftl</code>, then it will be simplified to <code>b/c.ftl</code>. The
rules regarding this are the same as with conventional UN*X paths. The path must not reach outside the
template root directory, that is, it can't be something like <code>"../templates/my.ftl"</code> (not even
if this path happens to be equivalent with <code>"/my.ftl"</code>). Furthermore, the path is allowed to
contain at most one path element whose name is <code>*</code> (asterisk). This path meta-element triggers
the <i>acquisition mechanism</i>. If the template is not found in the location described by the
concatenation of the path left to the asterisk (called base path) and the part to the right of the
asterisk (called resource path), the cache will attempt to remove the rightmost path component from
the base path ("go up one directory") and concatenate that with the resource path. The process is
repeated until either a template is found, or the base path is completely exhausted.</dd>
<dd><code>locale</code> - The requested locale of the template. This is what <a href="../../freemarker/core/Configurable.html#getLocale--"><code>Configurable.getLocale()</code></a> on the resulting
<a href="../../freemarker/template/Template.html" title="class in freemarker.template"><code>Template</code></a> will return (unless it's overridden via <a href="../../freemarker/template/Configuration.html#getTemplateConfigurations--"><code>getTemplateConfigurations()</code></a>). This
parameter can be <code>null</code> since 2.3.22, in which case it defaults to
<a href="../../freemarker/core/Configurable.html#getLocale--"><code>Configurable.getLocale()</code></a> (note that <a href="../../freemarker/core/Configurable.html#getLocale--"><code>Configurable.getLocale()</code></a> will give the default value,
not <code>null</code>). This parameter also drives localized template lookup. Assuming that you have
specified <code>en_US</code> as the locale and <code>myTemplate.ftl</code> as the name of the template, and the
default <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a> is used and
<code>#setLocalizedLookup(boolean) localized_lookup</code> is <code>true</code>, FreeMarker will first try to
retrieve <code>myTemplate_en_US.html</code>, then <code>myTemplate.en.ftl</code>, and finally
<code>myTemplate.ftl</code>. Note that that the template's locale will be <code>en_US</code> even if it only
finds <code>myTemplate.ftl</code>. Note that when the <code>locale</code> setting is overridden with a
<a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a> provided by <a href="../../freemarker/template/Configuration.html#getTemplateConfigurations--"><code>getTemplateConfigurations()</code></a>, that overrides the
value specified here, but only after the localized lookup, that is, it modifies the template
found by the localized lookup.</dd>
<dd><code>customLookupCondition</code> - This value can be used by a custom <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a>; has no effect with the default one.
Can be <code>null</code> (though it's up to the custom <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a> if it allows that).
This object will be used as part of the cache key, so it must to have a proper
<code>Object.equals(Object)</code> and <code>Object.hashCode()</code> method. It also should have reasonable
<code>Object.toString()</code>, as it's possibly quoted in error messages. The expected type is up to the
custom <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a>. See also:
<a href="../../freemarker/cache/TemplateLookupContext.html#getCustomLookupCondition--"><code>TemplateLookupContext.getCustomLookupCondition()</code></a>.</dd>
<dd><code>encoding</code> - Deprecated mechanism, <code>null</code> is the recommended; the charset used to interpret the template
source code bytes (if it's read from a binary source). Can be <code>null</code> since 2.3.22, in which case
it will default to <a href="../../freemarker/template/Configuration.html#getEncoding-java.util.Locale-"><code>getEncoding(Locale)</code></a> where <code>Locale</code> is the
<code>locale</code> parameter (when <code>locale</code> was <code>null</code> too, the its default value is used
instead). Why is this deprecated: It doesn't make sense to get the <em>same</em> template with
different encodings, hence, it's error prone to specify the encoding where you get the template.
Instead, if you have template "files" with different charsets, you should use
<a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(TemplateConfigurationFactory)</code></a>, where you can associate encodings to
individual templates based on their names (like which "directory" are they in, what's their file
extension, etc.). The encoding associated with the templates that way overrides the encoding that you
specify here.</dd>
<dd><code>parseAsFTL</code> - If <code>true</code>, the loaded template is parsed and interpreted normally, as a regular FreeMarker
template. If <code>false</code>, the loaded template is treated as a static text, so <code>${...}</code>,
<code>&lt;#...&gt;</code> etc. will not have special meaning in it.</dd>
<dd><code>ignoreMissing</code> - If <code>true</code>, the method won't throw <a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template"><code>TemplateNotFoundException</code></a> if the template doesn't
exist, instead it returns <code>null</code>. Other kind of exceptions won't be suppressed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the requested template; maybe <code>null</code> when the <code>ignoreMissing</code> parameter is <code>true</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateNotFoundException.html" title="class in freemarker.template">TemplateNotFoundException</a></code> - If the template could not be found. Note that this exception extends <code>IOException</code>.</dd>
<dd><code><a href="../../freemarker/template/MalformedTemplateNameException.html" title="class in freemarker.template">MalformedTemplateNameException</a></code> - If the template name given was in violation with the <a href="../../freemarker/cache/TemplateNameFormat.html" title="class in freemarker.cache"><code>TemplateNameFormat</code></a> in use. Note that
this exception extends <code>IOException</code>.</dd>
<dd><code><a href="../../freemarker/core/ParseException.html" title="class in freemarker.core">ParseException</a></code> - (extends <code>IOException</code>) if the template is syntactically bad. Note that this exception
extends <code>IOException</code>.</dd>
<dd><code>java.io.IOException</code> - If there was some other problem with reading the template "file". Note that the other exceptions
extend <code>IOException</code>, so this should be catched the last.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="setDefaultEncoding-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDefaultEncoding</h4>
<pre>public&nbsp;void&nbsp;setDefaultEncoding(java.lang.String&nbsp;encoding)</pre>
<div class="block">Sets the charset used for decoding byte sequences to character sequences when
reading template files in a locale for which no explicit encoding
was specified via <a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-"><code>setEncoding(Locale, String)</code></a>. Note that by default there is no locale specified for
any locale, so the default encoding is always in effect.
<p>Defaults to the default system encoding, which can change from one server to
another, so <b>you should always set this setting</b>. If you don't know what charset your should chose,
<code>"UTF-8"</code> is usually a good choice.
<p>Note that individual templates may specify their own charset by starting with
<tt>&lt;#ftl encoding="..."&gt;</tt></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encoding</code> - The name of the charset, such as <code>"UTF-8"</code> or <code>"ISO-8859-1"</code></dd>
</dl>
</li>
</ul>
<a name="getDefaultEncoding--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultEncoding</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDefaultEncoding()</pre>
<div class="block">Gets the default encoding for converting bytes to characters when
reading template files in a locale for which no explicit encoding
was specified. Defaults to the default system encoding.</div>
</li>
</ul>
<a name="unsetDefaultEncoding--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsetDefaultEncoding</h4>
<pre>public&nbsp;void&nbsp;unsetDefaultEncoding()</pre>
<div class="block">Resets the setting to its default, as if it was never set.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="isDefaultEncodingExplicitlySet--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDefaultEncodingExplicitlySet</h4>
<pre>public&nbsp;boolean&nbsp;isDefaultEncodingExplicitlySet()</pre>
<div class="block">Tells if <a href="../../freemarker/template/Configuration.html#setDefaultEncoding-java.lang.String-"><code>setDefaultEncoding(String)</code></a> (or equivalent) was already called on this instance, or it just holds the
default value.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="getEncoding-java.util.Locale-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEncoding</h4>
<pre>public&nbsp;java.lang.String&nbsp;getEncoding(java.util.Locale&nbsp;locale)</pre>
<div class="block">Gets the preferred character encoding for the given locale, or the
default encoding if no encoding is set explicitly for the specified
locale. You can associate encodings with locales using
<a href="../../freemarker/template/Configuration.html#setEncoding-java.util.Locale-java.lang.String-"><code>setEncoding(Locale, String)</code></a> or <a href="../../freemarker/template/Configuration.html#loadBuiltInEncodingMap--"><code>loadBuiltInEncodingMap()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locale</code> - Shouldn't be <code>null</code>, though for backward compatibility it's accepted when the locale to
encoding <code>Map</code> (see earlier) is empty.</dd>
</dl>
</li>
</ul>
<a name="setEncoding-java.util.Locale-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEncoding</h4>
<pre>public&nbsp;void&nbsp;setEncoding(java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding)</pre>
<div class="block">Sets the character set encoding to use for templates of
a given locale. If there is no explicit encoding set for some
locale, then the default encoding will be used, what you can
set with <a href="../../freemarker/template/Configuration.html#setDefaultEncoding-java.lang.String-"><code>setDefaultEncoding(java.lang.String)</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#clearEncodingMap--"><code>clearEncodingMap()</code></a>,
<a href="../../freemarker/template/Configuration.html#loadBuiltInEncodingMap--"><code>loadBuiltInEncodingMap()</code></a></dd>
</dl>
</li>
</ul>
<a name="setSharedVariable-java.lang.String-freemarker.template.TemplateModel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSharedVariable</h4>
<pre>public&nbsp;void&nbsp;setSharedVariable(java.lang.String&nbsp;name,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;tm)</pre>
<div class="block">Adds a shared variable to the configuration.
Shared sharedVariables are sharedVariables that are visible
as top-level sharedVariables for all templates which use this
configuration, if the data model does not contain a
variable with the same name.
<p>Never use <tt>TemplateModel</tt> implementation that is not thread-safe for shared sharedVariables,
if the configuration is used by multiple threads! It is the typical situation for Servlet based Web sites.
<p>This method is <b>not</b> thread safe; use it with the same restrictions as those that modify setting values.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name used to access the data object from your template.
If a shared variable with this name already exists, it will replace
that.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setAllSharedVariables-freemarker.template.TemplateHashModelEx-"><code>setAllSharedVariables(freemarker.template.TemplateHashModelEx)</code></a>,
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-java.lang.Object-"><code>setSharedVariable(String,Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="getSharedVariableNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSharedVariableNames</h4>
<pre>public&nbsp;java.util.Set&nbsp;getSharedVariableNames()</pre>
<div class="block">Returns the set containing the names of all defined shared sharedVariables.
The method returns a new Set object on each call that is completely
disconnected from the Configuration. That is, modifying the set will have
no effect on the Configuration object.</div>
</li>
</ul>
<a name="setSharedVariable-java.lang.String-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSharedVariable</h4>
<pre>public&nbsp;void&nbsp;setSharedVariable(java.lang.String&nbsp;name,
java.lang.Object&nbsp;value)
throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Adds shared variable to the configuration; It uses <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a> to wrap the
<code>value</code>, so it's important that the object wrapper is set before this.
<p>This method is <b>not</b> thread safe; use it with the same restrictions as those that modify setting values.
<p>The added value should be thread safe, if you are running templates from multiple threads with this
configuration.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code> - If some of the variables couldn't be wrapped via <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setSharedVaribles-java.util.Map-"><code>setSharedVaribles(Map)</code></a>,
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-freemarker.template.TemplateModel-"><code>setSharedVariable(String,TemplateModel)</code></a>,
<a href="../../freemarker/template/Configuration.html#setAllSharedVariables-freemarker.template.TemplateHashModelEx-"><code>setAllSharedVariables(TemplateHashModelEx)</code></a></dd>
</dl>
</li>
</ul>
<a name="setSharedVariables-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSharedVariables</h4>
<pre>public&nbsp;void&nbsp;setSharedVariables(java.util.Map&lt;java.lang.String,?&gt;&nbsp;map)
throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Replaces all shared variables (removes all previously added ones).
<p>The values in the map can be <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s or plain Java objects which will be immediately converted
to <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> with the <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> returned by <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a>. If
<a href="../../freemarker/template/Configuration.html#setObjectWrapper-freemarker.template.ObjectWrapper-"><code>setObjectWrapper(ObjectWrapper)</code></a> is called later, this conversion will be re-applied. Thus, ignoring some
extra resource usage, it doesn't mater if in what order are <a href="../../freemarker/template/Configuration.html#setObjectWrapper-freemarker.template.ObjectWrapper-"><code>setObjectWrapper(ObjectWrapper)</code></a> and
<a href="../../freemarker/template/Configuration.html#setSharedVaribles-java.util.Map-"><code>setSharedVaribles(Map)</code></a> called. This is essential when you don't have control over the order in which
the setters are called.
<p>The values in the map must be thread safe, if you are running templates from multiple threads with
this configuration. This means that both the plain Java object and the <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s created from them
by the <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> must be thread safe. (The standard <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a>-s of FreeMarker create
thread safe <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s.) The <code>Map</code> itself need not be thread-safe.
<p>This setter method has no getter pair because of the tricky relation ship with
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-java.lang.Object-"><code>setSharedVariable(String, Object)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code> - If some of the variables couldn't be wrapped via <a href="../../freemarker/core/Configurable.html#getObjectWrapper--"><code>Configurable.getObjectWrapper()</code></a>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.29</dd>
</dl>
</li>
</ul>
<a name="setSharedVaribles-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSharedVaribles</h4>
<pre>public&nbsp;void&nbsp;setSharedVaribles(java.util.Map&nbsp;map)
throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#setSharedVariables-java.util.Map-"><code>setSharedVariables(Map)</code></a> instead.</span></div>
<div class="block">Same as <a href="../../freemarker/template/Configuration.html#setSharedVariables-java.util.Map-"><code>setSharedVariables(Map)</code></a>, but with typo in the name.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="setAllSharedVariables-freemarker.template.TemplateHashModelEx-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAllSharedVariables</h4>
<pre>public&nbsp;void&nbsp;setAllSharedVariables(<a href="../../freemarker/template/TemplateHashModelEx.html" title="interface in freemarker.template">TemplateHashModelEx</a>&nbsp;hash)
throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Adds all object in the hash as shared variable to the configuration; it's like doing several
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-java.lang.Object-"><code>setSharedVariable(String, Object)</code></a> calls, one for each hash entry. It doesn't remove the already added
shared variable before doing this.
<p>Never use <tt>TemplateModel</tt> implementation that is not thread-safe for shared shared variable values,
if the configuration is used by multiple threads! It is the typical situation for Servlet based Web sites.
<p>This method is <b>not</b> thread safe; use it with the same restrictions as those that modify setting values.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hash</code> - a hash model whose objects will be copied to the
configuration with same names as they are given in the hash.
If a shared variable with these names already exist, it will be replaced
with those from the map.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setSharedVaribles-java.util.Map-"><code>setSharedVaribles(Map)</code></a>,
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-java.lang.Object-"><code>setSharedVariable(String,Object)</code></a>,
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-freemarker.template.TemplateModel-"><code>setSharedVariable(String,TemplateModel)</code></a></dd>
</dl>
</li>
</ul>
<a name="getSharedVariable-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSharedVariable</h4>
<pre>public&nbsp;<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;getSharedVariable(java.lang.String&nbsp;name)</pre>
<div class="block">Gets a shared variable. Shared shared variables are variables that are
available to all templates. When a template is processed, and an identifier
is undefined in the data model, a shared variable object with the same identifier
is then looked up in the configuration. There are several predefined shared variables
that are always available through this method; see the FreeMarker manual
for a comprehensive list of them.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-java.lang.Object-"><code>setSharedVariable(String,Object)</code></a>,
<a href="../../freemarker/template/Configuration.html#setSharedVariable-java.lang.String-freemarker.template.TemplateModel-"><code>setSharedVariable(String,TemplateModel)</code></a>,
<a href="../../freemarker/template/Configuration.html#setAllSharedVariables-freemarker.template.TemplateHashModelEx-"><code>setAllSharedVariables(freemarker.template.TemplateHashModelEx)</code></a></dd>
</dl>
</li>
</ul>
<a name="clearSharedVariables--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearSharedVariables</h4>
<pre>public&nbsp;void&nbsp;clearSharedVariables()</pre>
<div class="block">Removes all shared variables, except the predefined ones (compress, html_escape, etc.).</div>
</li>
</ul>
<a name="clearTemplateCache--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearTemplateCache</h4>
<pre>public&nbsp;void&nbsp;clearTemplateCache()</pre>
<div class="block">Removes all entries from the template cache, thus forcing reloading of templates
on subsequent <code>getTemplate</code> calls.
<p>This method is thread-safe and can be called while the engine processes templates.</div>
</li>
</ul>
<a name="removeTemplateFromCache-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTemplateFromCache</h4>
<pre>public&nbsp;void&nbsp;removeTemplateFromCache(java.lang.String&nbsp;name)
throws java.io.IOException</pre>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, thisCfg.getLocale(), null, thisCfg.getEncoding(thisCfg.getLocale()), true)</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.19</dd>
</dl>
</li>
</ul>
<a name="removeTemplateFromCache-java.lang.String-java.util.Locale-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTemplateFromCache</h4>
<pre>public&nbsp;void&nbsp;removeTemplateFromCache(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale)
throws java.io.IOException</pre>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, locale, null, thisCfg.getEncoding(locale), true)</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.19</dd>
</dl>
</li>
</ul>
<a name="removeTemplateFromCache-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTemplateFromCache</h4>
<pre>public&nbsp;void&nbsp;removeTemplateFromCache(java.lang.String&nbsp;name,
java.lang.String&nbsp;encoding)
throws java.io.IOException</pre>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, thisCfg.getLocale(), null, encoding, true)</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.19</dd>
</dl>
</li>
</ul>
<a name="removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTemplateFromCache</h4>
<pre>public&nbsp;void&nbsp;removeTemplateFromCache(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding)
throws java.io.IOException</pre>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, locale, null, encoding, true)</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.19</dd>
</dl>
</li>
</ul>
<a name="removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTemplateFromCache</h4>
<pre>public&nbsp;void&nbsp;removeTemplateFromCache(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.String&nbsp;encoding,
boolean&nbsp;parse)
throws java.io.IOException</pre>
<div class="block">Equivalent to <a href="../../freemarker/template/Configuration.html#removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>removeTemplateFromCache(name, locale, null, encoding, parse)</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.19</dd>
</dl>
</li>
</ul>
<a name="removeTemplateFromCache-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTemplateFromCache</h4>
<pre>public&nbsp;void&nbsp;removeTemplateFromCache(java.lang.String&nbsp;name,
java.util.Locale&nbsp;locale,
java.lang.Object&nbsp;customLookupCondition,
java.lang.String&nbsp;encoding,
boolean&nbsp;parse)
throws java.io.IOException</pre>
<div class="block">Removes a template from the template cache, hence forcing the re-loading
of it when it's next time requested. This is to give the application
finer control over cache updating than <a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelay-int-"><code>setTemplateUpdateDelay(int)</code></a>
alone does.
<p>For the meaning of the parameters, see
<a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-boolean-"><code>getTemplate(String, Locale, Object, String, boolean, boolean)</code></a>.
<p>This method is thread-safe and can be called while the engine processes templates.</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.28</dd>
</dl>
</li>
</ul>
<a name="getLocalizedLookup--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalizedLookup</h4>
<pre>public&nbsp;boolean&nbsp;getLocalizedLookup()</pre>
<div class="block">The getter pair of <a href="../../freemarker/template/Configuration.html#setLocalizedLookup-boolean-"><code>setLocalizedLookup(boolean)</code></a>.
<p>This method is thread-safe and can be called while the engine works.</div>
</li>
</ul>
<a name="setLocalizedLookup-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLocalizedLookup</h4>
<pre>public&nbsp;void&nbsp;setLocalizedLookup(boolean&nbsp;localizedLookup)</pre>
<div class="block">Enables/disables localized template lookup. Enabled by default.
<p>
With the default <a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a>, localized lookup works like this: Let's say your locale setting
is <code>Locale("en", "AU")</code>, and you call <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>cfg.getTemplate("foo.ftl")</code></a>.
Then FreeMarker will look for the template under these names, stopping at the first that exists:
<code>"foo_en_AU.ftl"</code>, <code>"foo_en.ftl"</code>, <code>"foo.ftl"</code>. See the description of the default value at
<a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-"><code>setTemplateLookupStrategy(TemplateLookupStrategy)</code></a> for a more details. If you need to generate different
template names, use <a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-"><code>setTemplateLookupStrategy(TemplateLookupStrategy)</code></a> with your custom
<a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache"><code>TemplateLookupStrategy</code></a>.
<p>Note that changing the value of this setting causes the template cache to be emptied so that old lookup
results won't be reused (since 2.3.22).
<p>
Historical note: Despite what the API documentation said earlier, this method is <em>not</em> thread-safe. While
setting it can't cause any serious problems, and in fact it works well on most hardware, it's not guaranteed that
FreeMarker will see the update in all threads.</div>
</li>
</ul>
<a name="setSetting-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSetting</h4>
<pre>public&nbsp;void&nbsp;setSetting(java.lang.String&nbsp;name,
java.lang.String&nbsp;value)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#setSetting-java.lang.String-java.lang.String-">Configurable</a></code></span></div>
<div class="block">Sets a FreeMarker setting by a name and string value. If you can configure FreeMarker directly with Java (or
other programming language), you should use the dedicated setter methods instead (like
<a href="../../freemarker/core/Configurable.html#setObjectWrapper-freemarker.template.ObjectWrapper-"><code>Configurable.setObjectWrapper(ObjectWrapper)</code></a>. This meant to be used only when you get settings from somewhere
as <code>String</code>-<code>String</code> name-value pairs (typically, as a <code>Properties</code> object). Below you find an
overview of the settings available.
<p>Note: As of FreeMarker 2.3.23, setting names can be written in camel case too. For example, instead of
<code>date_format</code> you can also use <code>dateFormat</code>. It's likely that camel case will become to the
recommended convention in the future.
<p>The list of settings commonly supported in all <a href="../../freemarker/core/Configurable.html" title="class in freemarker.core"><code>Configurable</code></a> subclasses:
<ul>
<li><p><code>"locale"</code>:
See <a href="../../freemarker/core/Configurable.html#setLocale-java.util.Locale-"><code>Configurable.setLocale(Locale)</code></a>.
<br>String value: local codes with the usual format in Java, such as <code>"en_US"</code>, or since 2.3.26,
"JVM default" (ignoring case) to use the default locale of the Java environment.
<li><p><code>"classic_compatible"</code>:
See <a href="../../freemarker/core/Configurable.html#setClassicCompatible-boolean-"><code>Configurable.setClassicCompatible(boolean)</code></a> and <a href="../../freemarker/core/Configurable.html#setClassicCompatibleAsInt-int-"><code>Configurable.setClassicCompatibleAsInt(int)</code></a>.
<br>String value: <code>"true"</code>, <code>"false"</code>, also since 2.3.20 <code>0</code> or <code>1</code> or <code>2</code>.
(Also accepts <code>"yes"</code>, <code>"no"</code>, <code>"t"</code>, <code>"f"</code>, <code>"y"</code>, <code>"n"</code>.)
Case insensitive.
<li><p><code>"custom_number_formats"</code>: See <a href="../../freemarker/core/Configurable.html#setCustomNumberFormats-java.util.Map-"><code>Configurable.setCustomNumberFormats(Map)</code></a>.
<br>String value: Interpreted as an <a href="#fm_obe">object builder expression</a>.
<br>Example: <code>{ "hex": com.example.HexTemplateNumberFormatFactory,
"gps": com.example.GPSTemplateNumberFormatFactory }</code>
<li><p><code>"custom_date_formats"</code>: See <a href="../../freemarker/core/Configurable.html#setCustomDateFormats-java.util.Map-"><code>Configurable.setCustomDateFormats(Map)</code></a>.
<br>String value: Interpreted as an <a href="#fm_obe">object builder expression</a>.
<br>Example: <code>{ "trade": com.example.TradeTemplateDateFormatFactory,
"log": com.example.LogTemplateDateFormatFactory }</code>
<li><p><code>"c_format"</code>:
See <a href="../../freemarker/template/Configuration.html#setCFormat-freemarker.core.CFormat-"><code>setCFormat(CFormat)</code></a>.
<br>String value: <code>"default"</code> (case insensitive) for the default (on <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> only), or
one of the predefined values <code>"JavaScript or JSON"</code>, <code>"JSON"</code>,
<code>"JavaScript"</code>, <code>"Java"</code>, <code>"XS"</code>, <code>"legacy"</code>,
or an <a href="#fm_obe">object builder expression</a> that gives a <a href="../../freemarker/core/CFormat.html" title="class in freemarker.core"><code>CFormat</code></a> object.
<li><p><code>"template_exception_handler"</code>:
See <a href="../../freemarker/core/Configurable.html#setTemplateExceptionHandler-freemarker.template.TemplateExceptionHandler-"><code>Configurable.setTemplateExceptionHandler(TemplateExceptionHandler)</code></a>.
<br>String value: If the value contains dot, then it's interpreted as an <a href="#fm_obe">object builder
expression</a>.
If the value does not contain dot, then it must be one of these predefined values (case insensitive):
<code>"rethrow"</code> (means <a href="../../freemarker/template/TemplateExceptionHandler.html#RETHROW_HANDLER"><code>TemplateExceptionHandler.RETHROW_HANDLER</code></a>),
<code>"debug"</code> (means <a href="../../freemarker/template/TemplateExceptionHandler.html#DEBUG_HANDLER"><code>TemplateExceptionHandler.DEBUG_HANDLER</code></a>),
<code>"html_debug"</code> (means <a href="../../freemarker/template/TemplateExceptionHandler.html#HTML_DEBUG_HANDLER"><code>TemplateExceptionHandler.HTML_DEBUG_HANDLER</code></a>),
<code>"ignore"</code> (means <a href="../../freemarker/template/TemplateExceptionHandler.html#IGNORE_HANDLER"><code>TemplateExceptionHandler.IGNORE_HANDLER</code></a>), or
<code>"default"</code> (only allowed for <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instances) for the default value.
<li><p><code>"attempt_exception_reporter"</code>:
See <a href="../../freemarker/core/Configurable.html#setAttemptExceptionReporter-freemarker.template.AttemptExceptionReporter-"><code>Configurable.setAttemptExceptionReporter(AttemptExceptionReporter)</code></a>.
<br>String value: If the value contains dot, then it's interpreted as an <a href="#fm_obe">object builder
expression</a>.
If the value does not contain dot, then it must be one of these predefined values (case insensitive):
<code>"log_error"</code> (means <a href="../../freemarker/template/AttemptExceptionReporter.html#LOG_ERROR_REPORTER"><code>AttemptExceptionReporter.LOG_ERROR_REPORTER</code></a>),
<code>"log_warn"</code> (means <a href="../../freemarker/template/AttemptExceptionReporter.html#LOG_WARN_REPORTER"><code>AttemptExceptionReporter.LOG_WARN_REPORTER</code></a>), or
<code>"default"</code> (only allowed for <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> instances) for the default value.
<li><p><code>"arithmetic_engine"</code>:
See <a href="../../freemarker/core/Configurable.html#setArithmeticEngine-freemarker.core.ArithmeticEngine-"><code>Configurable.setArithmeticEngine(ArithmeticEngine)</code></a>.
<br>String value: If the value contains dot, then it's interpreted as an <a href="#fm_obe">object builder
expression</a>.
If the value does not contain dot,
then it must be one of these special values (case insensitive):
<code>"bigdecimal"</code>, <code>"conservative"</code>.
<li><p><code>"object_wrapper"</code>:
See <a href="../../freemarker/core/Configurable.html#setObjectWrapper-freemarker.template.ObjectWrapper-"><code>Configurable.setObjectWrapper(ObjectWrapper)</code></a>.
<br>String value: If the value contains dot, then it's interpreted as an <a href="#fm_obe">object builder
expression</a>, with the addition that <a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>, <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> and
<a href="../../freemarker/template/SimpleObjectWrapper.html" title="class in freemarker.template"><code>SimpleObjectWrapper</code></a> can be referred without package name. For example, these strings are valid
values: <code>"DefaultObjectWrapper(2.3.21, forceLegacyNonListCollections=false, iterableSupport=true)"</code>,
<code>"BeansWrapper(2.3.21, simpleMapWrapper=true)"</code>.
<br>If the value does not contain dot, then it must be one of these special values (case insensitive):
<code>"default"</code> means the default of <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> (the default depends on the
<code>Configuration#Configuration(Version) incompatible_improvements</code>, but a bug existed in 2.3.21 where
that was ignored),
<code>"default_2_3_0"</code> (means the deprecated <a href="../../freemarker/template/ObjectWrapper.html#DEFAULT_WRAPPER"><code>ObjectWrapper.DEFAULT_WRAPPER</code></a>)
<code>"simple"</code> (means the deprecated <a href="../../freemarker/template/ObjectWrapper.html#SIMPLE_WRAPPER"><code>ObjectWrapper.SIMPLE_WRAPPER</code></a>),
<code>"beans"</code> (means the deprecated <a href="../../freemarker/template/ObjectWrapper.html#BEANS_WRAPPER"><code>ObjectWrapper.BEANS_WRAPPER</code></a>
or <a href="../../freemarker/ext/beans/BeansWrapperBuilder.html#build--"><code>BeansWrapperBuilder.build()</code></a>),
<code>"jython"</code> (means <a href="../../freemarker/template/ObjectWrapper.html#DEFAULT_WRAPPER"><code>ObjectWrapper.DEFAULT_WRAPPER</code></a>)
<li><p><code>"number_format"</code>: See <a href="../../freemarker/core/Configurable.html#setNumberFormat-java.lang.String-"><code>Configurable.setNumberFormat(String)</code></a>.
<li><p><code>"boolean_format"</code>: See <a href="../../freemarker/core/Configurable.html#setBooleanFormat-java.lang.String-"><code>Configurable.setBooleanFormat(String)</code></a> .
<li><p><code>"date_format", "time_format", "datetime_format"</code>:
See <a href="../../freemarker/core/Configurable.html#setDateFormat-java.lang.String-"><code>Configurable.setDateFormat(String)</code></a>, <a href="../../freemarker/core/Configurable.html#setTimeFormat-java.lang.String-"><code>Configurable.setTimeFormat(String)</code></a>, <a href="../../freemarker/core/Configurable.html#setDateTimeFormat-java.lang.String-"><code>Configurable.setDateTimeFormat(String)</code></a>.
<li><p><code>"time_zone"</code>:
See <a href="../../freemarker/core/Configurable.html#setTimeZone-java.util.TimeZone-"><code>Configurable.setTimeZone(TimeZone)</code></a>.
<br>String value: With the format as <code>TimeZone.getTimeZone(String)</code> defines it. Also, since 2.3.21
<code>"JVM default"</code> can be used that will be replaced with the actual JVM default time zone when
<a href="../../freemarker/core/Configurable.html#setSetting-java.lang.String-java.lang.String-"><code>Configurable.setSetting(String, String)</code></a> is called.
For example <code>"GMT-8:00"</code> or <code>"America/Los_Angeles"</code>
<br>If you set this setting, consider setting <code>sql_date_and_time_time_zone</code>
too (see below)!
<li><p><code>sql_date_and_time_time_zone</code>:
See <a href="../../freemarker/core/Configurable.html#setSQLDateAndTimeTimeZone-java.util.TimeZone-"><code>Configurable.setSQLDateAndTimeTimeZone(TimeZone)</code></a>.
Since 2.3.21.
<br>String value: With the format as <code>TimeZone.getTimeZone(String)</code> defines it. Also,
<code>"JVM default"</code> can be used that will be replaced with the actual JVM default time zone when
<a href="../../freemarker/core/Configurable.html#setSetting-java.lang.String-java.lang.String-"><code>Configurable.setSetting(String, String)</code></a> is called. Also <code>"null"</code> can be used, which has the same effect
as <a href="../../freemarker/core/Configurable.html#setSQLDateAndTimeTimeZone-java.util.TimeZone-"><code>setSQLDateAndTimeTimeZone(null)</code></a>.
<li><p><code>"output_encoding"</code>:
See <a href="../../freemarker/core/Configurable.html#setOutputEncoding-java.lang.String-"><code>Configurable.setOutputEncoding(String)</code></a>.
<li><p><code>"url_escaping_charset"</code>:
See <a href="../../freemarker/core/Configurable.html#setURLEscapingCharset-java.lang.String-"><code>Configurable.setURLEscapingCharset(String)</code></a>.
<li><p><code>"auto_flush"</code>:
See <a href="../../freemarker/core/Configurable.html#setAutoFlush-boolean-"><code>Configurable.setAutoFlush(boolean)</code></a>.
Since 2.3.17.
<br>String value: <code>"true"</code>, <code>"false"</code>, <code>"y"</code>, etc.
<li><p><code>"auto_import"</code>:
See <a href="../../freemarker/core/Configurable.html#setAutoImports-java.util.Map-"><code>Configurable.setAutoImports(Map)</code></a>
<br>String value is something like:
<br><code>/lib/form.ftl as f, /lib/widget as w, "/lib/odd name.ftl" as odd</code>
<li><p><code>"auto_include"</code>: Sets the list of auto-includes.
See <a href="../../freemarker/core/Configurable.html#setAutoIncludes-java.util.List-"><code>Configurable.setAutoIncludes(List)</code></a>
<br>String value is something like:
<br><code>/include/common.ftl, "/include/evil name.ftl"</code>
<li><p><code>"lazy_auto_imports"</code>:
See <a href="../../freemarker/core/Configurable.html#setLazyAutoImports-java.lang.Boolean-"><code>Configurable.setLazyAutoImports(Boolean)</code></a>.
<br>String value: <code>"true"</code>, <code>"false"</code> (also the equivalents: <code>"yes"</code>, <code>"no"</code>,
<code>"t"</code>, <code>"f"</code>, <code>"y"</code>, <code>"n"</code>), case insensitive. Also can be <code>"null"</code>.
<li><p><code>"lazy_imports"</code>:
See <a href="../../freemarker/core/Configurable.html#setLazyImports-boolean-"><code>Configurable.setLazyImports(boolean)</code></a>.
<br>String value: <code>"true"</code>, <code>"false"</code> (also the equivalents: <code>"yes"</code>, <code>"no"</code>,
<code>"t"</code>, <code>"f"</code>, <code>"y"</code>, <code>"n"</code>), case insensitive.
<li><p><code>"new_builtin_class_resolver"</code>:
See <a href="../../freemarker/core/Configurable.html#setNewBuiltinClassResolver-freemarker.core.TemplateClassResolver-"><code>Configurable.setNewBuiltinClassResolver(TemplateClassResolver)</code></a>.
Since 2.3.17.
The value must be one of these (ignore the quotation marks):
<ol>
<li><p><code>"unrestricted"</code>:
Use <a href="../../freemarker/core/TemplateClassResolver.html#UNRESTRICTED_RESOLVER"><code>TemplateClassResolver.UNRESTRICTED_RESOLVER</code></a>
<li><p><code>"safer"</code>:
Use <a href="../../freemarker/core/TemplateClassResolver.html#SAFER_RESOLVER"><code>TemplateClassResolver.SAFER_RESOLVER</code></a>
<li><p><code>"allows_nothing"</code> (or <code>"allowsNothing"</code>):
Use <a href="../../freemarker/core/TemplateClassResolver.html#ALLOWS_NOTHING_RESOLVER"><code>TemplateClassResolver.ALLOWS_NOTHING_RESOLVER</code></a>
<li><p>Something that contains colon will use
<a href="../../freemarker/core/OptInTemplateClassResolver.html" title="class in freemarker.core"><code>OptInTemplateClassResolver</code></a> and is expected to
store comma separated values (possibly quoted) segmented
with <code>"allowed_classes:"</code> (or <code>"allowedClasses:"</code>) and/or
<code>"trusted_templates:"</code> (or <code>"trustedTemplates:"</code>). Examples of valid values:
<table style="width: auto; border-collapse: collapse" border="1"
summary="trusted_template value examples">
<tr>
<th>Setting value
<th>Meaning
<tr>
<td>
<code>allowed_classes: com.example.C1, com.example.C2,
trusted_templates: lib/*, safe.ftl</code>
<td>
Only allow instantiating the <code>com.example.C1</code> and
<code>com.example.C2</code> classes. But, allow templates
within the <code>lib/</code> directory (like
<code>lib/foo/bar.ftl</code>) and template <code>safe.ftl</code>
(that does not match <code>foo/safe.ftl</code>, only
exactly <code>safe.ftl</code>) to instantiate anything
that <a href="../../freemarker/core/TemplateClassResolver.html#SAFER_RESOLVER"><code>TemplateClassResolver.SAFER_RESOLVER</code></a> allows.
<tr>
<td>
<code>allowed_classes: com.example.C1, com.example.C2</code>
<td>Only allow instantiating the <code>com.example.C1</code> and
<code>com.example.C2</code> classes. There are no
trusted templates.
<tr>
<td>
<code>trusted_templates: lib/*, safe.ftl</code>
<td>
Do not allow instantiating any classes, except in
templates inside <code>lib/</code> or in template
<code>safe.ftl</code>.
</table>
<p>For more details see <a href="../../freemarker/core/OptInTemplateClassResolver.html" title="class in freemarker.core"><code>OptInTemplateClassResolver</code></a>.
<li><p>Otherwise if the value contains dot, it's interpreted as an <a href="#fm_obe">object builder
expression</a>.
</ol>
<li><p><code>"show_error_tips"</code>:
See <a href="../../freemarker/core/Configurable.html#setShowErrorTips-boolean-"><code>Configurable.setShowErrorTips(boolean)</code></a>.
Since 2.3.21.
<br>String value: <code>"true"</code>, <code>"false"</code>, <code>"y"</code>, etc.
<li><p><code>api_builtin_enabled</code>:
See <a href="../../freemarker/core/Configurable.html#setAPIBuiltinEnabled-boolean-"><code>Configurable.setAPIBuiltinEnabled(boolean)</code></a>.
Since 2.3.22.
<br>String value: <code>"true"</code>, <code>"false"</code>, <code>"y"</code>, etc.
<li><p><code>"truncate_builtin_algorithm"</code>:
See <a href="../../freemarker/core/Configurable.html#setTruncateBuiltinAlgorithm-freemarker.core.TruncateBuiltinAlgorithm-"><code>Configurable.setTruncateBuiltinAlgorithm(TruncateBuiltinAlgorithm)</code></a>.
Since 2.3.19.
<br>String value: An
<a href="#fm_obe">object builder expression</a>, or one of the predefined values (case insensitive),
<code>ascii</code> (for <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE"><code>DefaultTruncateBuiltinAlgorithm.ASCII_INSTANCE</code></a>) and
<code>unicode</code> (for <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE"><code>DefaultTruncateBuiltinAlgorithm.UNICODE_INSTANCE</code></a>).
<br>Example object builder expressions:
<br>Use <code>"..."</code> as terminator (and same as markup terminator), and add space if the
truncation happened on word boundary:
<br><code>DefaultTruncateBuiltinAlgorithm("...", true)</code>
<br>Use <code>"..."</code> as terminator, and also a custom HTML for markup terminator, and add space if the
truncation happened on word boundary:
<br><code>DefaultTruncateBuiltinAlgorithm("...",
markup(HTMLOutputFormat(), "&lt;span class=trunc&gt;...&lt;/span&gt;"), true)</code>
<br>Recreate default truncate algorithm, but with not preferring truncation at word boundaries (i.e.,
with <code>wordBoundaryMinLength</code> 1.0):
<br><code>freemarker.core.DefaultTruncateBuiltinAlgorithm(<br>
DefaultTruncateBuiltinAlgorithm.STANDARD_ASCII_TERMINATOR, null, null,<br>
DefaultTruncateBuiltinAlgorithm.STANDARD_M_TERMINATOR, null, null,<br>
true, 1.0)</code>
</ul>
<p><a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> (a subclass of <a href="../../freemarker/core/Configurable.html" title="class in freemarker.core"><code>Configurable</code></a>) also understands these:</p>
<ul>
<li><p><code>"auto_escaping"</code>:
See <a href="../../freemarker/template/Configuration.html#setAutoEscapingPolicy-int-"><code>setAutoEscapingPolicy(int)</code></a>
<br>String value: <code>"enable_if_default"</code> or <code>"enableIfDefault"</code> for
<a href="../../freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</code></a>,
<code>"enable_if_supported"</code> or <code>"enableIfSupported"</code> for
<a href="../../freemarker/template/Configuration.html#ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY"><code>ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY</code></a>
<code>"disable"</code> for <a href="../../freemarker/template/Configuration.html#DISABLE_AUTO_ESCAPING_POLICY"><code>DISABLE_AUTO_ESCAPING_POLICY</code></a>.
<li><p><code>"default_encoding"</code>:
See <a href="../../freemarker/template/Configuration.html#setDefaultEncoding-java.lang.String-"><code>setDefaultEncoding(String)</code></a>; since 2.3.26 also accepts value "JVM default"
(not case sensitive) to set the Java environment default value.
<br>As the default value is the system default, which can change
from one server to another, <b>you should always set this!</b>
<li><p><code>"localized_lookup"</code>:
See <a href="../../freemarker/template/Configuration.html#setLocalizedLookup-boolean-"><code>setLocalizedLookup(boolean)</code></a>.
<br>String value: <code>"true"</code>, <code>"false"</code> (also the equivalents: <code>"yes"</code>, <code>"no"</code>,
<code>"t"</code>, <code>"f"</code>, <code>"y"</code>, <code>"n"</code>).
Case insensitive.
<li><p><code>"output_format"</code>:
See <a href="../../freemarker/template/Configuration.html#setOutputFormat-freemarker.core.OutputFormat-"><code>setOutputFormat(OutputFormat)</code></a>.
<br>String value: <code>"default"</code> (case insensitive) for the default,
one of <code>undefined</code>, <code>HTML</code>, <code>XHTML</code>, <code>XML</code>, <code>RTF</code>, <code>plainText</code>,
<code>CSS</code>, <code>JavaScript</code>, <code>JSON</code>,
or an <a href="#fm_obe">object builder expression</a> that gives an <a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a>, for example
<code>HTMLOutputFormat</code>, or <code>com.example.MyOutputFormat()</code>.
<li><p><code>"registered_custom_output_formats"</code>:
See <a href="../../freemarker/template/Configuration.html#setRegisteredCustomOutputFormats-java.util.Collection-"><code>setRegisteredCustomOutputFormats(Collection)</code></a>.
<br>String value: an <a href="#fm_obe">object builder expression</a> that gives a <code>List</code> of
<a href="../../freemarker/core/OutputFormat.html" title="class in freemarker.core"><code>OutputFormat</code></a>-s.
Example: <code>[com.example.MyOutputFormat(), com.example.MyOtherOutputFormat()]</code>
<li><p><code>"strict_syntax"</code>:
See <a href="../../freemarker/template/Configuration.html#setStrictSyntaxMode-boolean-"><code>setStrictSyntaxMode(boolean)</code></a>. Deprecated.
<br>String value: <code>"true"</code>, <code>"false"</code>, <code>yes</code>, etc.
<li><p><code>"whitespace_stripping"</code>:
See <a href="../../freemarker/template/Configuration.html#setWhitespaceStripping-boolean-"><code>setWhitespaceStripping(boolean)</code></a>.
<br>String value: <code>"true"</code>, <code>"false"</code>, <code>yes</code>, etc.
<li><p><code>"cache_storage"</code>:
See <a href="../../freemarker/template/Configuration.html#setCacheStorage-freemarker.cache.CacheStorage-"><code>setCacheStorage(freemarker.cache.CacheStorage)</code></a>.
<br>String value: If the value contains dot, then it's interpreted as an <a href="#fm_obe">object builder
expression</a>.
If the value does not contain dot,
then a <a href="../../freemarker/cache/MruCacheStorage.html" title="class in freemarker.cache"><code>MruCacheStorage</code></a> will be used with the
maximum strong and soft sizes specified with the setting value. Examples
of valid setting values:
<table style="width: auto; border-collapse: collapse" border="1" summary="cache_storage value examples">
<tr><th>Setting value<th>max. strong size<th>max. soft size
<tr><td><code>"strong:50, soft:500"</code><td>50<td>500
<tr><td><code>"strong:100, soft"</code><td>100<td><code>Integer.MAX_VALUE</code>
<tr><td><code>"strong:100"</code><td>100<td>0
<tr><td><code>"soft:100"</code><td>0<td>100
<tr><td><code>"strong"</code><td><code>Integer.MAX_VALUE</code><td>0
<tr><td><code>"soft"</code><td>0<td><code>Integer.MAX_VALUE</code>
</table>
<p>The value is not case sensitive. The order of <tt>soft</tt> and <tt>strong</tt>
entries is not significant.
<li><p><code>"template_update_delay"</code>:
Template update delay in <b>seconds</b> (not in milliseconds) if no unit is specified; see
<a href="../../freemarker/template/Configuration.html#setTemplateUpdateDelayMilliseconds-long-"><code>setTemplateUpdateDelayMilliseconds(long)</code></a> for more.
<br>String value: Valid positive integer, optionally followed by a time unit (recommended). The default
unit is seconds. It's strongly recommended to specify the unit for clarity, like in "500 ms" or "30 s".
Supported units are: "s" (seconds), "ms" (milliseconds), "m" (minutes), "h" (hours). The whitespace between
the unit and the number is optional. Units are only supported since 2.3.23.
<li><p><code>"tag_syntax"</code>:
See <a href="../../freemarker/template/Configuration.html#setTagSyntax-int-"><code>setTagSyntax(int)</code></a>.
<br>String value: Must be one of
<code>"auto_detect"</code>, <code>"angle_bracket"</code>, and <code>"square_bracket"</code> (like <code>[#if x]</code>).
<br>Note that setting the <code>"tagSyntax"</code> to <code>"square_bracket"</code> does <em>not</em> change
<code>${x}</code> to <code>[=...]</code>; that's <em>interpolation</em> syntax, so use the
<code>"interpolation_syntax"</code> setting for that, not this setting.
<li><p><code>"interpolation_syntax"</code> (since 2.3.28):
See <a href="../../freemarker/template/Configuration.html#setInterpolationSyntax-int-"><code>setInterpolationSyntax(int)</code></a>.
<br>String value: Must be one of
<code>"legacy"</code>, <code>"dollar"</code>, and <code>"square_bracket"</code> (like <code>[=x]</code>).
<br>Note that setting the <code>"interpolation_syntax"</code> to <code>"square_bracket"</code> does <em>not</em>
change <code>&lt;#if x&gt;</code> to <code>[#if x]</code>; that's <em>tag</em> syntax, so use the
<code>"tag_syntax"</code> setting for that, not this setting.
<li><p><code>"naming_convention"</code>:
See <a href="../../freemarker/template/Configuration.html#setNamingConvention-int-"><code>setNamingConvention(int)</code></a>.
<br>String value: Must be one of
<code>"auto_detect"</code>, <code>"legacy"</code>, and <code>"camel_case"</code>.
<li><p><code>"fallback_on_null_loop_variable"</code>:
See <a href="../../freemarker/template/Configuration.html#setFallbackOnNullLoopVariable-boolean-"><code>setFallbackOnNullLoopVariable(boolean)</code></a>.
<br>String value: <code>"true"</code>, <code>"false"</code> (also the equivalents: <code>"yes"</code>, <code>"no"</code>,
<code>"t"</code>, <code>"f"</code>, <code>"y"</code>, <code>"n"</code>).
Case insensitive.
<li><p><code>"incompatible_improvements"</code>:
See <a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a>.
<br>String value: version number like <code>2.3.20</code>.
<li><p><code>"incompatible_enhancements"</code>:
See: <a href="../../freemarker/template/Configuration.html#setIncompatibleEnhancements-java.lang.String-"><code>setIncompatibleEnhancements(String)</code></a>.
This setting name is deprecated, use <code>"incompatible_improvements"</code> instead.
<li><p><code>"recognize_standard_file_extensions"</code>:
See <a href="../../freemarker/template/Configuration.html#setRecognizeStandardFileExtensions-boolean-"><code>setRecognizeStandardFileExtensions(boolean)</code></a>.
<br>String value: <code>"default"</code> (case insensitive) for the default, or <code>"true"</code>, <code>"false"</code>,
<code>yes</code>, etc.
<li><p><code>"template_configurations"</code>:
See: <a href="../../freemarker/template/Configuration.html#setTemplateConfigurations-freemarker.cache.TemplateConfigurationFactory-"><code>setTemplateConfigurations(freemarker.cache.TemplateConfigurationFactory)</code></a>.
<br>String value: Interpreted as an <a href="#fm_obe">object builder expression</a>,
can be <code>null</code>.
<li><p><code>"template_loader"</code>:
See: <a href="../../freemarker/template/Configuration.html#setTemplateLoader-freemarker.cache.TemplateLoader-"><code>setTemplateLoader(TemplateLoader)</code></a>.
<br>String value: <code>"default"</code> (case insensitive) for the default, or else interpreted as an
<a href="#fm_obe">object builder expression</a>. <code>"null"</code> is also allowed since 2.3.26.
<li><p><code>"template_lookup_strategy"</code>:
See: <a href="../../freemarker/template/Configuration.html#setTemplateLookupStrategy-freemarker.cache.TemplateLookupStrategy-"><code>setTemplateLookupStrategy(freemarker.cache.TemplateLookupStrategy)</code></a>.
<br>String value: <code>"default"</code> (case insensitive) for the default, or else interpreted as an
<a href="#fm_obe">object builder expression</a>.
<li><p><code>"template_name_format"</code>:
See: <a href="../../freemarker/template/Configuration.html#setTemplateNameFormat-freemarker.cache.TemplateNameFormat-"><code>setTemplateNameFormat(freemarker.cache.TemplateNameFormat)</code></a>.
<br>String value: <code>"default"</code> (case insensitive) for the default, <code>"default_2_3_0"</code>
for <a href="../../freemarker/cache/TemplateNameFormat.html#DEFAULT_2_3_0"><code>TemplateNameFormat.DEFAULT_2_3_0</code></a>, <code>"default_2_4_0"</code> for
<a href="../../freemarker/cache/TemplateNameFormat.html#DEFAULT_2_4_0"><code>TemplateNameFormat.DEFAULT_2_4_0</code></a>.
<li><p><code>"tab_size"</code>:
See <a href="../../freemarker/template/Configuration.html#setTabSize-int-"><code>setTabSize(int)</code></a>.
</ul>
<p><a name="fm_obe"></a>Regarding <em>object builder expressions</em> (used by the setting values where it was
indicated):
<ul>
<li><p>Before FreeMarker 2.3.21 it had to be a fully qualified class name, and nothing else.</li>
<li><p>Since 2.3.21, the generic syntax is:
<tt><i>className</i>(<i>constrArg1</i>, <i>constrArg2</i>, ... <i>constrArgN</i>,
<i>propName1</i>=<i>propValue1</i>, <i>propName2</i>=<i>propValue2</i>, ...
<i>propNameN</i>=<i>propValueN</i>)</tt>,
where
<tt><i>className</i></tt> is the fully qualified class name of the instance to create (except if we have
builder class or <tt>INSTANCE</tt> field around, but see that later),
<tt><i>constrArg</i></tt>-s are the values of constructor arguments,
and <tt><i>propName</i>=<i>propValue</i></tt>-s set JavaBean properties (like <tt>x=1</tt> means
<tt>setX(1)</tt>) on the created instance. You can have any number of constructor arguments and property
setters, including 0. Constructor arguments must precede any property setters.
</li>
<li>
Example: <tt>com.example.MyObjectWrapper(1, 2, exposeFields=true, cacheSize=5000)</tt> is nearly
equivalent with this Java code:
<tt>obj = new com.example.MyObjectWrapper(1, 2); obj.setExposeFields(true); obj.setCacheSize(5000);</tt>
</li>
<li>
<p>If you have no constructor arguments and property setters, and the <tt><i>className</i></tt> class has
a public static <code>INSTANCE</code> field, the value of that filed will be the value of the expression, and
the constructor won't be called. Note that if you use the backward compatible
syntax, where these's no parenthesis after the class name, then it will not look for <code>INSTANCE</code>.
</li>
<li>
<p>If there exists a class named <tt><i>className</i>Builder</tt>, then that class will be instantiated
instead with the given constructor arguments, and the JavaBean properties of that builder instance will be
set. After that, the public <tt>build()</tt> method of the instance will be called, whose return value
will be the value of the whole expression. (The builder class and the <tt>build()</tt> method is simply
found by name, there's no special interface to implement.) Note that if you use the backward compatible
syntax, where these's no parenthesis after the class name, then it will not look for builder class. Note
that if you have a builder class, you don't actually need a <tt><i>className</i></tt> class (since 2.3.24);
after all, <tt><i>className</i>Builder.build()</tt> can return any kind of object.
</li>
<li>
<p>Currently, the values of arguments and properties can only be one of these:
<ul>
<li>A numerical literal, like <code>123</code> or <code>-1.5</code>. The value will be automatically converted to
the type of the target (just like in FTL). However, a target type is only available if the number will
be a parameter to a method or constructor, not when it's a value (or key) in a <code>List</code> or
<code>Map</code> literal. Thus in the last case the type of number will be like in Java language, like
<code>1</code> is an <code>int</code>, and <code>1.0</code> is a <code>double</code>, and <code>1.0f</code> is a <code>float</code>,
etc. In all cases, the standard Java type postfixes can be used ("f", "d", "l"), plus "bd" for
<code>BigDecimal</code> and "bi" for <code>BigInteger</code>.</li>
<li>A boolean literal: <code>true</code> or <code>false</code>
<li>The null literal: <code>null</code>
<li>A string literal with FTL syntax, except that it can't contain <tt>${...}</tt>-s and
<tt>#{...}</tt>-s. Examples: <code>"Line 1\nLine 2"</code> or <code>r"C:\temp"</code>.
<li>A list literal (since 2.3.24) with FTL-like syntax, for example <code>[ 'foo', 2, true ]</code>.
If the parameter is expected to be array, the list will be automatically converted to array.
The list items can be any kind of expression, like even object builder expressions.
<li>A map literal (since 2.3.24) with FTL-like syntax, for example <code>{ 'foo': 2, 'bar': true }</code>.
The keys and values can be any kind of expression, like even object builder expressions.
The resulting Java object will be a <code>Map</code> that keeps the item order (<code>LinkedHashMap</code> as
of this writing).
<li>A reference to a public static filed, like <code>Configuration.AUTO_DETECT_TAG_SYNTAX</code> or
<code>com.example.MyClass.MY_CONSTANT</code>.
<li>An object builder expression. That is, object builder expressions can be nested into each other.
</ul>
</li>
<li>
The same kind of expression as for parameters can also be used as top-level expressions (though it's
rarely useful, apart from using <code>null</code>).
</li>
<li>
<p>The top-level object builder expressions may omit <code>()</code>. In that case, for backward compatibility,
the <code>INSTANCE</code> field and the builder class is not searched, so the instance will be always
created with its parameterless constructor. (This behavior will possibly change in 2.4.) The <code>()</code>
can't be omitted for nested expressions.
</li>
<li>
<p>The following classes can be referred to with simple (unqualified) name instead of fully qualified name:
<a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>, <a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>, <a href="../../freemarker/template/SimpleObjectWrapper.html" title="class in freemarker.template"><code>SimpleObjectWrapper</code></a>, <code>Locale</code>,
<a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a>, <a href="../../freemarker/cache/PathGlobMatcher.html" title="class in freemarker.cache"><code>PathGlobMatcher</code></a>, <a href="../../freemarker/cache/FileNameGlobMatcher.html" title="class in freemarker.cache"><code>FileNameGlobMatcher</code></a>, <a href="../../freemarker/cache/PathRegexMatcher.html" title="class in freemarker.cache"><code>PathRegexMatcher</code></a>,
<a href="../../freemarker/cache/AndMatcher.html" title="class in freemarker.cache"><code>AndMatcher</code></a>, <a href="../../freemarker/cache/OrMatcher.html" title="class in freemarker.cache"><code>OrMatcher</code></a>, <a href="../../freemarker/cache/NotMatcher.html" title="class in freemarker.cache"><code>NotMatcher</code></a>, <a href="../../freemarker/cache/ConditionalTemplateConfigurationFactory.html" title="class in freemarker.cache"><code>ConditionalTemplateConfigurationFactory</code></a>,
<a href="../../freemarker/cache/MergingTemplateConfigurationFactory.html" title="class in freemarker.cache"><code>MergingTemplateConfigurationFactory</code></a>, <a href="../../freemarker/cache/FirstMatchTemplateConfigurationFactory.html" title="class in freemarker.cache"><code>FirstMatchTemplateConfigurationFactory</code></a>,
<a href="../../freemarker/core/HTMLOutputFormat.html" title="class in freemarker.core"><code>HTMLOutputFormat</code></a>, <a href="../../freemarker/core/XMLOutputFormat.html" title="class in freemarker.core"><code>XMLOutputFormat</code></a>, <a href="../../freemarker/core/RTFOutputFormat.html" title="class in freemarker.core"><code>RTFOutputFormat</code></a>, <a href="../../freemarker/core/PlainTextOutputFormat.html" title="class in freemarker.core"><code>PlainTextOutputFormat</code></a>,
<a href="../../freemarker/core/UndefinedOutputFormat.html" title="class in freemarker.core"><code>UndefinedOutputFormat</code></a>, <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>, <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core"><code>DefaultTruncateBuiltinAlgorithm</code></a>.
</li>
<li>
<p><code>TimeZone</code> objects can be created like <code>TimeZone("UTC")</code>, despite that there's no a such
constructor (since 2.3.24).
</li>
<li>
<p><a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a> objects can be created like
<code>markup(HTMLOutputFormat(), "&lt;h1&gt;Example&lt;/h1&gt;")</code> (since 2.3.29). Of course the 1st argument can be
any other <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a> too.
</li>
<li>
<p>The classes and methods that the expression meant to access must be all public.
</li>
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#setSetting-java.lang.String-java.lang.String-">setSetting</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the setting.</dd>
<dd><code>value</code> - the string that describes the new value of the setting.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.UnknownSettingException.html" title="class in freemarker.core">Configurable.UnknownSettingException</a></code> - if the name is wrong.</dd>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code> - if the new value of the setting can't be set for any other reasons.</dd>
</dl>
</li>
</ul>
<a name="getSettingNames-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSettingNames</h4>
<pre>public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;getSettingNames(boolean&nbsp;camelCase)</pre>
<div class="block">Returns the valid <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> setting names. Naturally, this includes the <a href="../../freemarker/core/Configurable.html" title="class in freemarker.core"><code>Configurable</code></a> setting
names too.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#getSettingNames-boolean-">getSettingNames</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>camelCase</code> - If we want the setting names with camel case naming convention, or with snake case (legacy) naming
convention.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/core/Configurable.html#getSettingNames-boolean-"><code>Configurable.getSettingNames(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="getCorrectedNameForUnknownSetting-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCorrectedNameForUnknownSetting</h4>
<pre>protected&nbsp;java.lang.String&nbsp;getCorrectedNameForUnknownSetting(java.lang.String&nbsp;name)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#getCorrectedNameForUnknownSetting-java.lang.String-">getCorrectedNameForUnknownSetting</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The wrong name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The corrected name, or <code>null</code> if there's no known correction</dd>
</dl>
</li>
</ul>
<a name="doAutoImportsAndIncludes-freemarker.core.Environment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doAutoImportsAndIncludes</h4>
<pre>protected&nbsp;void&nbsp;doAutoImportsAndIncludes(<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a>,
java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/Configurable.html#doAutoImportsAndIncludes-freemarker.core.Environment-">Configurable</a></code></span></div>
<div class="block">Executes the auto-imports and auto-includes for the main template of this environment.
This is not meant to be called or overridden by code outside of FreeMarker.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../freemarker/core/Configurable.html#doAutoImportsAndIncludes-freemarker.core.Environment-">doAutoImportsAndIncludes</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/Configurable.html" title="class in freemarker.core">Configurable</a></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></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getVersionNumber--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVersionNumber</h4>
<pre>@Deprecated
public static&nbsp;java.lang.String&nbsp;getVersionNumber()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../freemarker/template/Configuration.html#getVersion--"><code>getVersion()</code></a> instead.</span></div>
<div class="block">Returns FreeMarker version number string.</div>
</li>
</ul>
<a name="getVersion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVersion</h4>
<pre>public static&nbsp;<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;getVersion()</pre>
<div class="block">Returns FreeMarker version information, most importantly the major.minor.micro version numbers;
do NOT use this as the value of the <code>incompatible_improvements</code> setting (as the parameter to
<a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>Configuration(Version)</code></a>), as then your application can break when you upgrade FreeMarker!
Use a constant value, like <a href="../../freemarker/template/Configuration.html#VERSION_2_3_28"><code>VERSION_2_3_28</code></a>, to protect your application from fixes/changes that aren't
entirely backward compatible. Fixes and features that are backward compatible are always enabled.
On FreeMarker version numbering rules:
<ul>
<li>For final/stable releases the version number is like major.minor.micro, like 2.3.19. (Historically,
when micro was 0 the version strings was like major.minor instead of the proper major.minor.0, but that's
not like that anymore.)
<li>When only the micro version is increased, compatibility with previous versions with the same
major.minor is kept. Thus <tt>freemarker.jar</tt> can be replaced in an existing application without
breaking it.</li>
<li>For non-final/unstable versions (that almost nobody uses), the format is:
<ul>
<li>Starting from 2.3.20: major.minor.micro-extraInfo, like
2.3.20-nightly_20130506T123456Z, 2.4.0-RC01. The major.minor.micro
always indicates the target we move towards, so 2.3.20-nightly or 2.3.20-M01 is
after 2.3.19 and will eventually become to 2.3.20. "PRE", "M" and "RC" (uppercase!) means
"preview", "milestone" and "release candidate" respectively, and is always followed by a 2 digit
0-padded counter, like M03 is the 3rd milestone release of a given major.minor.micro.</li>
<li>Before 2.3.20: The extraInfo wasn't preceded by a "-".
Instead of "nightly" there was "mod", where the major.minor.micro part has indicated where
are we coming from, so 2.3.19mod (read as: 2.3.19 modified) was after 2.3.19 but before 2.3.20.
Also, "pre" and "rc" was lowercase, and was followd by a number without 0-padding.</li>
</ul>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
</dl>
</li>
</ul>
<a name="getDefaultObjectWrapper-freemarker.template.Version-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultObjectWrapper</h4>
<pre>public static&nbsp;<a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;getDefaultObjectWrapper(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</pre>
<div class="block">Returns the default object wrapper for a given "incompatible_improvements" version.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>setIncompatibleImprovements(Version)</code></a></dd>
</dl>
</li>
</ul>
<a name="getSupportedBuiltInNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSupportedBuiltInNames</h4>
<pre>public&nbsp;java.util.Set&nbsp;getSupportedBuiltInNames()</pre>
<div class="block">Same as <a href="../../freemarker/template/Configuration.html#getSupportedBuiltInNames-int-"><code>getSupportedBuiltInNames(int)</code></a> with argument <a href="../../freemarker/template/Configuration.html#getNamingConvention--"><code>getNamingConvention()</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
</dl>
</li>
</ul>
<a name="getSupportedBuiltInNames-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSupportedBuiltInNames</h4>
<pre>public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;getSupportedBuiltInNames(int&nbsp;namingConvention)</pre>
<div class="block">Returns the names of the supported "built-ins". These are the (<code>expr?builtin_name</code>-like things). As of this
writing, this information doesn't depend on the configuration options, so it could be a static method, but
to be future-proof, it's an instance method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>namingConvention</code> - One of <a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION"><code>AUTO_DETECT_NAMING_CONVENTION</code></a>, <a href="../../freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION"><code>LEGACY_NAMING_CONVENTION</code></a>, and
<a href="../../freemarker/template/Configuration.html#CAMEL_CASE_NAMING_CONVENTION"><code>CAMEL_CASE_NAMING_CONVENTION</code></a>. If it's <a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION"><code>AUTO_DETECT_NAMING_CONVENTION</code></a> then the union
of the names in all the naming conventions is returned.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</dd>
</dl>
</li>
</ul>
<a name="getSupportedBuiltInDirectiveNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSupportedBuiltInDirectiveNames</h4>
<pre>public&nbsp;java.util.Set&nbsp;getSupportedBuiltInDirectiveNames()</pre>
<div class="block">Same as <a href="../../freemarker/template/Configuration.html#getSupportedBuiltInDirectiveNames-int-"><code>getSupportedBuiltInDirectiveNames(int)</code></a> with argument <a href="../../freemarker/template/Configuration.html#getNamingConvention--"><code>getNamingConvention()</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="getSupportedBuiltInDirectiveNames-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getSupportedBuiltInDirectiveNames</h4>
<pre>public&nbsp;java.util.Set&lt;java.lang.String&gt;&nbsp;getSupportedBuiltInDirectiveNames(int&nbsp;namingConvention)</pre>
<div class="block">Returns the names of the directives that are predefined by FreeMarker. These are the things that you call like
<tt>&lt;#directiveName ...&gt;</tt>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>namingConvention</code> - One of <a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION"><code>AUTO_DETECT_NAMING_CONVENTION</code></a>, <a href="../../freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION"><code>LEGACY_NAMING_CONVENTION</code></a>, and
<a href="../../freemarker/template/Configuration.html#CAMEL_CASE_NAMING_CONVENTION"><code>CAMEL_CASE_NAMING_CONVENTION</code></a>. If it's <a href="../../freemarker/template/Configuration.html#AUTO_DETECT_NAMING_CONVENTION"><code>AUTO_DETECT_NAMING_CONVENTION</code></a> then the union
of the names in all the naming conventions is returned.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.24</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/Configuration.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/AttemptExceptionReporter.html" title="interface in freemarker.template"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/template/DefaultArrayAdapter.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/Configuration.html" target="_top">Frames</a></li>
<li><a href="Configuration.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.classes.inherited.from.class.freemarker.core.Configurable">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>