| <!doctype html> |
| <!-- Generated by FreeMarker/Docgen from DocBook --> |
| <html lang="en" class="page-type-glossary"> |
| <head prefix="og: http://ogp.me/ns#"> |
| <meta charset="utf-8"> |
| <title>Glossary - Apache FreeMarker Manual</title> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| <meta name="format-detection" content="telephone=no"> |
| <meta property="og:site_name" content="Apache FreeMarker Manual"> |
| <meta property="og:title" content="Glossary"> |
| <meta property="og:locale" content="en_US"> |
| <meta property="og:url" content="https://freemarker.apache.org/docs/gloss.html"> |
| <link rel="canonical" href="https://freemarker.apache.org/docs/gloss.html"> |
| <link rel="icon" href="favicon.png" type="image/png"> |
| <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:500,700,400,300|Droid+Sans+Mono"> |
| <link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1707770044859"> |
| <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/cookie-bar/cookiebar-latest.min.js"></script> |
| </head> |
| <body itemscope itemtype="https://schema.org/Code"> |
| <meta itemprop="url" content="https://freemarker.apache.org/docs/"> |
| <meta itemprop="name" content="Apache FreeMarker Manual"> |
| |
| <!--[if lte IE 9]> |
| <div class="oldBrowserWarning" style="display: block"> |
| Unsupported web browser - Use a modern browser to view this website! |
| </div> |
| <![endif]--> <div class="oldBrowserWarning"> |
| Unsupported web browser - Use a modern browser to view this website! |
| </div> |
| <div class="header-top-bg"><div class="site-width header-top"><div id="hamburger-menu" role="button"></div> <div class="logo"> |
| <a href="https://freemarker.apache.org" role="banner"><img itemprop="image" src="logo.png" alt="FreeMarker"></a> </div> |
| <ul class="tabs"><li><a href="https://freemarker.apache.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="https://freemarker.apache.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://issues.apache.org/jira/projects/FREEMARKER" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="https://freemarker.apache.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">Manual</a><div class="navigation-header"></div><form method="get" class="search-form" action="search-results.html"><fieldset><legend class="sr-only">Search form</legend><label for="search-field" class="sr-only">Search query</label><input id="search-field" name="q" type="search" class="search-input" placeholder="Search" spellcheck="false" autocorrect="off" autocomplete="off"><button type="submit" class="search-btn"><span class="sr-only">Search</span></button></fieldset></form></div><div class="site-width breadcrumb-row"> <div class="breadcrumbs"> |
| <ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="index.html"><span itemprop="name">Apache FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="gloss.html"><span itemprop="name">Glossary</span></a></li></ul> </div> |
| <div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul><li><a href="alphaidx.html">Alpha. index</a></li><li>Glossary</li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div> <div class="main-content site-width"> |
| <div class="content-wrapper"> |
| <div id="table-of-contents-wrapper" class="col-left"> |
| <script>var breadcrumb = ["Apache FreeMarker Manual","Glossary"];</script> |
| <script src="toc.js?1707770044859"></script> |
| <script src="docgen-resources/main.min.js?1707770044859"></script> |
| </div> |
| <div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="app_eccn.html"><span>Previous</span></a><a class="paging-arrow next" href="alphaidx.html"><span>Next</span></a></div><div class="title-wrapper"> |
| <h1 class="content-header header-part" id="gloss" itemprop="headline">Glossary</h1> |
| </div></div> <p> |
| <a href="#gloss.attribute">A</a> | <a href="#gloss.boolean">B</a> | <a href="#gloss.c">C</a> | <a href="#gloss.dataModel">D</a> | <a href="#gloss.element">E</a> | <a href="#gloss.FTL">F</a> | <a href="#gloss.hashVariable">H</a> | <a href="#gloss.lineBreak">L</a> | <a href="#gloss.macroDefinitionBody">M</a> | <a href="#gloss.outputEncoding">O</a> | <a href="#gloss.parseTimeError">P</a> | <a href="#gloss.regularExpression">R</a> | <a href="#gloss.scalarVariable">S</a> | <a href="#gloss.tag">T</a> | <a href="#gloss.UCS">U</a> | <a href="#gloss.whiteSpace">W</a> | <a href="#autoid_303">X</a> </p> |
| |
| <dl> |
| |
| <dt><a name="gloss.attribute"></a>Attribute</dt> |
| |
| |
| <dd> |
| <p>In connection with <a href="#gloss.XML">XML</a> or HTML |
| (or <a href="#gloss.SGML">SGML</a> in general), attributes are |
| the named values associated with elements. For example, in |
| <code class="inline-code"><body bgcolor=black |
| text=green><em class="code-color">...</em></body></code>, |
| the attributes are <code class="inline-code">bgcolor=black</code> and |
| <code class="inline-code">text=green</code>. On the left side of |
| <code class="inline-code">=</code> is the name of the attribute, while on the right |
| side is the value of the attribute. Note that in XML, the values must |
| be quoted (for example: <code class="inline-code"><body bgcolor="black" |
| text='green'></code>), while in HTML it is optional for certain |
| values.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.startTag">Start-tag</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.boolean"></a>Boolean</dt> |
| |
| |
| <dd> |
| <p>This is a variable type. A boolean variable represents a logical |
| true or false (yes or no). For example, if the visitor has been logged |
| in or not. There are only two possible boolean values: |
| <code class="inline-code">true</code> and <code class="inline-code">false</code>. Typically, you |
| will use booleans with an <code class="inline-code"><#if |
| <em class="code-color">...</em>></code> directive when you want |
| to display text based on some condition, say, you show a certain part |
| of the page only for visitors who has logged in.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.c"></a>c</dt> |
| |
| |
| <dd> |
| <p>In the context of FreeMarker, this usually refers to the <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code> built-in</a>, or |
| "computer format" in general.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.c_format"></a>c_format</dt> |
| |
| |
| <dd> |
| <p><code class="inline-code">c_format</code> (aka. <code class="inline-code">cFormat</code>, |
| "c format") is a <a href="pgui_config_settings.html">configuration setting</a> that |
| specifies how to format values for "computer |
| consumption", that is, if the target is some computer language, |
| or other simpler parser, and not a human reader. The value of this |
| setting is usually a computer language, like "JSON", or |
| "Java". The name refers to the <a href="ref_builtins_number.html#ref_builtin_c"><code>c</code> built-in</a>, which is |
| the typical way of formatting simple values for such output (e.g. |
| <code class="inline-code"><a href="/product/${product.id?c}"></code>). To |
| understand the topic more, see: <a href="dgui_misc_computer_vs_human_format.html">Template Author's Guide/Miscellaneous/Formatting for humans, or for computers</a></p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.character"></a>Character</dt> |
| |
| |
| <dd> |
| <p>A symbol that people use in writing. Examples of characters: |
| Latin capital letter A ("A"), Latin small letter A |
| ("a"), digit four ("4"), number sign |
| ("#"), colon (":")</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.charset"></a>Charset</dt> |
| |
| |
| <dd> |
| <p>A charset is a rule (algorithm) for transforming a sequence of |
| <a href="#gloss.character">characters</a> (text) to a sequence |
| of bits (or in practice, to a sequence of bytes). Whenever a character |
| sequence is stored on a digital media, or sent through a digital |
| channel (network), a charset must be applied. Examples of charsets are |
| ISO-8859-1, ISO-8859-6, Shift_JIS , UTF-8.</p> |
| |
| <p>The capabilities of different charsers are different, that is, |
| not all charsets can be used for all languages. For example ISO-8859-1 |
| can't represent Arabic letters, but ISO-8859-6 can, however it can't |
| represent the accented letters that that ISO-8859-1 can. Most charsets |
| are highly restrictive regarding the allowed characters. UTF-8 allows |
| virtually all possible characters, but most text editors can't handle |
| it yet (2004).</p> |
| |
| <p>When different software components exchange text (as the HTTP |
| server and the browser, or the text editor you use for saving |
| templates and FreeMarker who loads them), it's very important that |
| they agree in the charset used for the binary encoding of the text. If |
| they don't, then the binary data will be misinterpreted by the |
| receiver (loader) component, which usually results in the distortion |
| of the non-English letters.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.collectionVariable"></a>Collection</dt> |
| |
| |
| <dd> |
| <p>A variable that (in conjunction with the <code class="inline-code">list</code> |
| directive) can spit out a series of variables.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.dataModel"></a>Data-model</dt> |
| |
| |
| <dd> |
| <p>Something that holds the information the template has to show |
| (or use in some other ways) when the template processor assembles the |
| output (e.g. a Web page). In FreeMarker this is best visualized as a |
| tree.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.directive"></a>Directive</dt> |
| |
| |
| <dd> |
| <p>Instructions to FreeMarker used in <a href="#gloss.FTL">FTL</a> <a href="#gloss.template">templates</a>. They are invoked by <a href="#gloss.FTLTag">FTL tags</a>.</p> |
| |
| |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.predefinedDirective">Predefined directive</a>, |
| <a href="#gloss.userDefinedDirective">User-defined directive</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.element"></a>Element</dt> |
| |
| |
| <dd> |
| <p>Elements are the most fundamental building pieces of <a href="#gloss.SGML">SGML</a> documents; an SGML document is |
| basically a tree of elements. Example of elements used in HTML: body, |
| head, title, p, h1, h2.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.endTag"></a>End-tag</dt> |
| |
| |
| <dd> |
| <p><a href="#gloss.tag">Tag</a>, which indicates that the |
| following content is not under the element. Example: |
| <code class="inline-code"></body></code>.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.startTag">Start-tag</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.environment"></a>Environment</dt> |
| |
| |
| <dd> |
| <p>An <code class="inline-code">Environment</code> object stores the runtime |
| state of a single template <a href="#gloss.templateProcessingJob">template processing job</a>. |
| That is, for each |
| <code class="inline-code">Template.process(<em class="code-color">...</em>)</code> |
| call, an <code class="inline-code">Environment</code> instance will be created, and |
| then discarded when <code class="inline-code">process</code> returns. This object |
| stores the set of temporary variables created by the template, the |
| value of settings set by the template, the reference to the data-model |
| root, etc. Everything that is needed to fulfill the template |
| processing job.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.XML"></a>Extensible Markup Language</dt> |
| |
| |
| <dd> |
| <p>A subset (restricted version) of <a href="#gloss.SGML">SGML</a>. This is less powerful than SGML, but |
| it easier to learn and much easier to process with programs. If you |
| are an HTML author: XML documents are similar to HTML documents, but |
| the XML standard doesn't specify the usable elements. XML is a much |
| more general-purpose thing than HTML. For example you can use XML to |
| describe Web pages (like HTML) or to describe non-visual information |
| like a phone book database.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.SGML">Standard Generalized Markup Language</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.FTL"></a>FreeMarker Template Language</dt> |
| |
| |
| <dd> |
| <p>Simple programming language designed to write text file |
| templates, especially HTML templates.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="autoid_301"></a>FTL</dt> |
| |
| |
| <dd>See |
| <a href="#gloss.FTL">FreeMarker Template Language</a> |
| </dd> |
| |
| |
| <dt><a name="gloss.FTLTag"></a>FTL tag</dt> |
| |
| |
| <dd> |
| <p><a href="#gloss.tag">Tag</a>-like text fragment used to |
| invoke FreeMarker <a href="#gloss.directive">directives</a> in |
| <a href="#gloss.FTL">FTL</a> <a href="#gloss.template">templates</a>. These are similar to HTML |
| or XML tags at the first glance. The most prominent difference is that |
| the tag name is started with <code class="inline-code">#</code> or |
| <code class="inline-code">@</code>. Another important difference is that FTL tags do |
| not use <a href="#gloss.attribute">attributes</a>, but a |
| substantially different syntax to specify parameters. Examples of FTL |
| tags: <code class="inline-code"><#if newUser></code>, |
| <code class="inline-code"></#if></code>, <code class="inline-code"><@menuitem |
| title="Projects" link="projects.html"/></code></p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.fullQualifiedName"></a>Full-qualified name</dt> |
| |
| |
| <dd> |
| <p>... of nodes (XML node or other FTL node variable): The |
| full-qualified name of a node specifies not only the node name |
| (<code class="inline-code"><em class="code-color">node</em>?node_name</code>), but |
| also the node namespace |
| (<code class="inline-code"><em class="code-color">node</em>?node_namespace</code>), |
| this way it unambiguously identify a certain kind of node. The format |
| of the full-qualified name is |
| <code class="inline-code"><em class="code-color">nodeName</em></code> or |
| <code class="inline-code"><em class="code-color">prefix</em>:<em class="code-color">nodeName</em></code>. |
| The prefix is shorthand to identify the node namespace (the a node |
| namespace is usually specified with a long ugly URI). In FTL, prefixes |
| are associated with the node namespaces with the |
| <code class="inline-code">ns_prefixes</code> parameter of <a href="ref_directive_ftl.html#ref.directive.ftl">the <code>ftl</code> |
| directive</a>. In XML files, prefixes are associated with the node |
| namespaces with the |
| <code class="inline-code">xmlns:<em class="code-color">prefix</em></code> attributes. |
| The lack of the prefix means that the node uses the default node |
| namespace, if a default node namespace is defined; otherwise it means |
| that the node does not belong to any node namespace. The default node |
| namespace is defined in FTL by registering reserved prefix |
| <code class="inline-code">D</code> with the <code class="inline-code">ns_prefixes</code> parameter |
| of the <code class="inline-code">ftl</code> directive. In XML files it is defined |
| with attribute <code class="inline-code">xmlns</code>.</p> |
| |
| <p>... of Java classes: The full-qualified name of a Java class |
| contains both the class name and the name of the package the class |
| belongs to. This way it unambiguously specifies the class, regardless |
| of the context. An example of full-qualifed class name: |
| <code class="inline-code">java.util.Map</code> (as opposed to |
| <code class="inline-code">Map</code>).</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.functionDefinitionBody"></a>Function definition body</dt> |
| |
| |
| <dd> |
| <p>The template fragment between the <code class="inline-code"><#function |
| <em class="code-color">...</em>></code> and |
| <code class="inline-code"></#function></code>. This template fragment will be |
| executed when you call the function (for example as |
| <code class="inline-code">myFuction(1, 2)</code>).</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.hashVariable"></a>Hash</dt> |
| |
| |
| <dd> |
| <p>A variable that acts as a container that stores sub variables |
| that can be retrieved via a string that is a lookup name.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.sequenceVariable">Sequence</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.lineBreak"></a>Line break</dt> |
| |
| |
| <dd> |
| <p>Line break is a special character (or a sequence of special |
| characters) that causes a line breaking when you see the text as plain |
| text (say, when you read the text with Windows notepad). Typically you |
| type this character by hitting ENTER or RETURN key. The line break is |
| represented with different characters on different platforms (to cause |
| incompatibility and confusion...): "line feed" character |
| on UNIX-es, "carriage return" character on Macintosh, |
| "carriage return" + "line feed" (two |
| characters!) on Windows and DOS. Note that line breaks in HTML do not |
| have a visual effect when viewed in a browser; you must use markup |
| such as <code class="inline-code"><BR></code> for that. This manual never |
| means <code class="inline-code"><BR></code> when it says |
| "line-break".</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.macroDefinitionBody"></a>Macro definition body</dt> |
| |
| |
| <dd> |
| <p>The template fragment between the <code class="inline-code"><#macro |
| <em class="code-color">...</em>></code> and |
| <code class="inline-code"></#macro></code>. This template fragment will be |
| executed when you call the macro (for example as |
| <code class="inline-code"><@myMacro/></code>).</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.markupOutputValue"></a>Markup output value</dt> |
| |
| |
| <dd> |
| <p>A value with FTL type "markup output". This type is |
| related to <a href="dgui_misc_autoescaping.html">auto-escaping |
| mechanism</a>; you can <a href="dgui_misc_autoescaping.html#dgui_misc_autoescaping_movalues">read about this type |
| there</a>. But in short, this is a value that stores text that's |
| already in the output markup format (like HTML, XML, RTF, etc.), and |
| hence must not be auto-escaped.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.methodVariable"></a>Method</dt> |
| |
| |
| <dd> |
| <p>A variable that calculates something based on parameters you |
| give, and returns the result.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.MVC"></a>MVC pattern</dt> |
| |
| |
| <dd> |
| <p>MVC stands for Model View Controller. It's a design pattern |
| started his life in the 70's as a framework developer by Trygve |
| Reenskaug for Smalltalk, and was used primary for for UI-s (user |
| interfaces). MVC considers three roles:</p> |
| |
| <ul> |
| <li> |
| Model: Model represents application (domain) specific |
| information in a non-visual way. For example, an array of product |
| objects in the memory of your computer is the part of the |
| model. |
| </li> |
| |
| <li> |
| View: View displays the model and provides UI. For example, |
| it's the task of the view component to render the array of product |
| objects to a HTML page. |
| </li> |
| |
| <li> |
| Controller: The controller handles user input, modifies the |
| model, and ensures that the view is updated when needed. For |
| example it is the task of controller to take the incoming HTTP |
| requests, parse the received parameters (forms), dispatch the |
| requests to the proper business logic object, and chose the right |
| template for the HTTP response. |
| </li> |
| </ul> |
| |
| <p>The most important thing for us when applying MVC for Web |
| applications is the separation of View from the other two roles. This |
| allows the separation of designers (HTML authors) from programmers. |
| Designers deal with the visual aspects, programmers deal with the |
| application logic and other technical issues; everybody works on what |
| he is good at. Designers and programmers are less dependent on each |
| other. Designers can change the appearance without programmers having |
| to change or recompile the program.</p> |
| |
| <p>For more information I recommend reading <a href="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html">chapter |
| 4.4</a> of Designing Enterprise Applications with the J2EE Platform |
| blueprint.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.outputEncoding"></a>Output encoding</dt> |
| |
| |
| <dd> |
| <p>Means output <a href="#gloss.charset">charset</a>. In |
| the Java world the term "encoding" is commonly (mis)used |
| as a synonym to charset.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.parseTimeError"></a>Parse-time error</dt> |
| |
| |
| <dd> |
| <p>An error occurring during the template parsing phase, as opposed |
| to the later template execution phase (see more explanation below). |
| The presence of a such error prevents the execution of the whole |
| template, even if the execution wouldn't use the part where the error |
| is. This is seen as an advantage, as it helps early (before |
| deployment, ideally in-editor) error detection.</p> |
| |
| <p>A FreeMarker template is processed in two phases. First the |
| <em>whole</em> template is analyzed syntactically, which |
| is called parsing. The result of the parsing is a |
| <code class="inline-code">Template</code> Java object, which is usually cached for |
| fast reuse. Later, the already parsed template can be executed for |
| unlimited times to produce output based on the content of a <a href="#gloss.dataModel">data-model</a>. Errors occurring during |
| the parsing are called parse-time errors.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.predefinedDirective"></a>Predefined directive</dt> |
| |
| |
| <dd> |
| <p>Directive what is defined by FreeMarker, thus always available. |
| Example of predefined directives: <code class="inline-code">if</code>, |
| <code class="inline-code">list</code>, <code class="inline-code">include</code></p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.userDefinedDirective">User-defined directive</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.regularExpression"></a>Regular expression</dt> |
| |
| |
| <dd> |
| <p>A regular expression is a string that specifies a set of strings |
| that matches it. For example, the regular expression |
| <code class="inline-code">"fo*"</code> matches <code class="inline-code">"f"</code>, |
| <code class="inline-code">"fo"</code>, <code class="inline-code">"foo"</code>, etc. Regular |
| expressions are used in several languages and other tools. In |
| FreeMarker, the usage of them is a "power user" option. |
| So if you have never used them before, there is no need to worry about |
| not being familiar with them. But if you are interested in regular |
| expressions, you can find several Web pages and books about them. |
| FreeMarker uses the variation of regular expressions described at: |
| <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html</a></p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.scalarVariable"></a>Scalar</dt> |
| |
| |
| <dd> |
| <p>A scalar variable stores a single value. A scalar is either a |
| string or a number or a date/time or a <a href="#gloss.boolean">boolean</a>.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.sequenceVariable"></a>Sequence</dt> |
| |
| |
| <dd> |
| <p>A sequence is a variable that contains a sequence of sub |
| variables. The sequence's sub variables are accessible via numerical |
| index, where the index of the very first object is 0, the index of the |
| second objects is 1, the index of the third object is 2, etc.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.hashVariable">Hash</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="autoid_302"></a>SGML</dt> |
| |
| |
| <dd>See |
| <a href="#gloss.SGML">Standard Generalized Markup Language</a> |
| </dd> |
| |
| |
| <dt><a name="gloss.SGML"></a>Standard Generalized Markup Language</dt> |
| |
| |
| <dd> |
| <p>This is an international standard (ISO 8879) that specifies the |
| rules for the creation of platform-independent markup languages. HTML |
| is a markup language created with SGML. <a href="#gloss.XML">XML</a> is a subset (restricted version) of |
| SGML.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.XML">Extensible Markup Language</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.startTag"></a>Start-tag</dt> |
| |
| |
| <dd> |
| <p><a href="#gloss.tag">Tag</a>, which indicates that the |
| following content is under the element, up to the <a href="#gloss.endTag">end-tag</a>. The start-tag may also |
| specifies <a href="#gloss.attribute">attributes</a> for the |
| element. An example of a start-tag: <code class="inline-code"><body |
| bgcolor=black></code></p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.string"></a>String</dt> |
| |
| |
| <dd> |
| <p>A sequence of <a href="#gloss.character">characters</a> |
| such as "m", "o", "u", |
| "s", "e".</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.tag"></a>Tag</dt> |
| |
| |
| <dd> |
| <p>Text fragment indicating the usage of an element in SGML. |
| Examples of tags: <code class="inline-code"><body bgcolor=black></code>, |
| <code class="inline-code"></body></code></p> |
| |
| |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.startTag">Start-tag</a>, |
| <a href="#gloss.endTag">End-tag</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.template"></a>Template</dt> |
| |
| |
| <dd> |
| <p>A template is a text file with some special character sequences |
| embedded into it. A template processor (e.g. FreeMarker) will |
| interpret special character sequences and it outputs a more or less |
| different text from the original text file, where the differences are |
| often based on a <a href="#gloss.dataModel">data-model</a>. |
| Thus, the original text acts as a template of the possible |
| outputs.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.templateEncoding"></a>Template encoding</dt> |
| |
| |
| <dd> |
| <p>Means template <a href="#gloss.charset">charset</a>. In |
| the Java world the term "encoding" is commonly (mis)used |
| as a synonym to charset.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.templateProcessingJob"></a>Template processing job</dt> |
| |
| |
| <dd> |
| <p>A template processing job is the process during which FreeMarker |
| merges the main (top-level) template with a data-model to produce the |
| output. Because templates can <code class="inline-code">include</code> and |
| <code class="inline-code">import</code> other templates, this may involves the |
| processing of multiple templates, but those will all belong to the |
| same template processing job, which was started with the processing of |
| the main template. A template-processing job only exists for the short |
| time period until the processing of the main template is finished, and |
| then it vanishes with all the variables created during the process |
| (variables created with <code class="inline-code">assign</code>, |
| <code class="inline-code">macro</code>, <code class="inline-code">global</code>, etc. |
| directives).</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.threadSafe"></a>Thread-safe</dt> |
| |
| |
| <dd> |
| <p>An object is thread-safe if it is safe to call its methods from |
| multiple threads, even in parallel (i.e. multiple threads execute the |
| methods of the object at the same time). Non-thread-safe objects may |
| behave unpredictably in this situation, and generate wrong results, |
| corrupt internal data structures, etc. Thread-safety is typically |
| achieved in two ways with Java: with the usage |
| <code class="inline-code">synchronized</code> statement (or |
| <code class="inline-code">synchronized</code> methods), and with the immutability of |
| encapsulated data (i.e. you can't modify the field after you have |
| created the object).</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.transformVariable"></a>Transform</dt> |
| |
| |
| <dd> |
| <p>This term refers to user-defined directives that are implemetned |
| with the now obsolete <code class="inline-code">TemplateTransformModel</code> Java |
| interface. The feature was originally made for implementing output |
| filters, hence the name.</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.UCS"></a>UCS</dt> |
| |
| |
| <dd> |
| <p>This is international standard (ISO-10646) that defines a huge |
| set of <a href="#gloss.character">characters</a> and assigns a |
| unique number for each character ("!" is 33, ..., |
| "A" is 61, "B" is 62, ..., Arabic letter |
| hamza is 1569... etc.). This character set (not charset) contains |
| almost all characters used today (Latin alphabet, Cyrillic alphabet, |
| Chinese letters, etc.). The idea behind UCS is that we can specify any |
| character with a unique number, not mater what the platform or the |
| language is.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.unicode">Unicode</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.unicode"></a>Unicode</dt> |
| |
| |
| <dd> |
| <p>De-facto standard developed by Unicode organization. It deals |
| with the classification of the characters in <a href="#gloss.UCS">UCS</a> (which is letter, which is digit, which |
| is uppercase, which is lowercase, etc.), and with other problems of |
| processing text made from the characters of UCS (e.g. |
| normalization).</p> |
| |
| </dd> |
| |
| |
| <dt><a name="gloss.userDefinedDirective"></a>User-defined directive</dt> |
| |
| |
| <dd> |
| <p>Directive that is not defined by the FreeMarker core, but by the |
| user. These are typically application domain specific directives, like |
| pull-down menu generation directives, HTML form handling |
| directives.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.predefinedDirective">Predefined directive</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="gloss.whiteSpace"></a>White-space</dt> |
| |
| |
| <dd> |
| <p>Characters that are totally transparent but have impact on the |
| visual appearance of the text. Examples of white-space characters: |
| space, tab (horizontal and vertical), line breaks (CR and LF), form |
| feed.</p> |
| |
| |
| |
| <p>See Also |
| <a href="#gloss.lineBreak">Line break</a> |
| </p> |
| </dd> |
| |
| |
| <dt><a name="autoid_303"></a>XML</dt> |
| |
| |
| <dd>See |
| <a href="#gloss.XML">Extensible Markup Language</a> |
| </dd> |
| |
| </dl> |
| <div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_eccn.html"><span>Previous</span></a><a class="paging-arrow next" href="alphaidx.html"><span>Next</span></a></div></div></div></div> </div> |
| </div> |
| <div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="https://freemarker.apache.org/">What is FreeMarker?</a></li><li><a href="https://freemarker.apache.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="app_faq.html">FAQ</a></li><li><a itemprop="license" href="app_license.html">License</a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a></li></ul></div><div class="column"><h3 class="column-header">Often used / Reference</h3><ul><li><a href="https://try.freemarker.apache.org/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li><li><a href="api/freemarker/core/Configurable.html#setSetting-java.lang.String-java.lang.String-">Configuration settings</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href="https://github.com/apache/freemarker">Github project page</a></li><li><a href="https://issues.apache.org/jira/projects/FREEMARKER">Report a bug</a></li><li><a href="https://freemarker.apache.org/report-security-vulnerabilities.html">Report security vulnerability</a></li><li><a href="https://stackoverflow.com/questions/ask?tags=freemarker">Get help on StackOverflow</a></li><li><a href="https://twitter.com/freemarker">Announcements on Twitter</a></li><li><a href="https://freemarker.apache.org/mailing-lists.html">Discuss on mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/apache/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="https://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"> <p class="last-generated"> |
| Last generated: |
| <time itemprop="dateModified" datetime="2024-02-12T20:34:04Z" title="Monday, February 12, 2024 at 8:34:04 PM Greenwich Mean Time">2024-02-12 20:34:04 GMT</time>, for Freemarker 2.3.32 </p> |
| <p class="copyright"> |
| © <span itemprop="copyrightYear">1999</span>–2024 |
| <a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a>. Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. </p> |
| </div></div></div></body> |
| </html> |