<!doctype html>
<!-- Generated by FreeMarker/Docgen from DocBook -->
<html lang="en" class="page-type-section">
<head prefix="og: http://ogp.me/ns#">
<meta charset="utf-8">
<title>Create a data-model - 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="FreeMarker Manual">
<meta property="og:title" content="Create a data-model">
<meta property="og:locale" content="en_US">
<meta property="og:url" content="http://example.com/pgui_quickstart_createdatamodel.html">
<link rel="canonical" href="http://example.com/pgui_quickstart_createdatamodel.html">
<link rel="icon" href="favicon.png" type="image/png">
<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css?1594338519184">
</head>
<body itemscope itemtype="https://schema.org/Code">
    <meta itemprop="url" content="http://example.com/">
    <meta itemprop="name" content="FreeMarker Manual">

  <!--[if lte IE 9]>
  <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
  <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://example.com" role="banner">            <img itemprop="image" src="logo.png" alt="My Logo">
</a></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="index.html" class="navigation-header">FreeMarker Manual</a><div class="navigation-header"></div></div><div class="site-width breadcrumb-row"><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">FreeMarker Manual</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui.html"><span itemprop="name">Programmer&#39;s Guide</span></a></li><li class="step-2" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart.html"><span itemprop="name">Getting Started</span></a></li><li class="step-3" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="pgui_quickstart_createdatamodel.html"><span itemprop="name">Create a data-model</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Index</a></li><li><a href="gloss.html">Glossary</a></li><li><a href="ref.html">Reference</a></li><li><a href="app_faq.html">FAQ</a></li><li><a href="preface.html#test_target">Bőregér</a></li><li><a href="api/index.html">API</a></li><li><a href="../index.html">Home</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 = ["FreeMarker Manual","Programmer\'s Guide","Getting Started","Create a data-model"];</script>
      <script src="toc.js?1594338519184"></script>
      <script src="docgen-resources/main.min.js?1594338519184"></script>
  </div>
<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="pgui_quickstart_createconfiguration.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_gettemplate.html"><span>Next</span></a></div><div class="title-wrapper">
<h1 class="content-header header-section1" id="pgui_quickstart_createdatamodel" itemprop="headline">Create a data-model</h1>
</div></div><p>In simple cases you can build data-models using
        <code class="inline-code">java.lang</code> and <code class="inline-code">java.util</code> classes
        and custom Java Beans:</p><ul>
          <li>
            <p>Use <code class="inline-code">java.lang.String</code> for strings.</p>
          </li>

          <li>
            <p>Use <code class="inline-code">java.lang.Number</code> descents for
            numbers.</p>
          </li>

          <li>
            <p>Use <code class="inline-code">java.lang.Boolean</code> for boolean
            values.</p>
          </li>

          <li>
            <p>Use <code class="inline-code">java.util.List</code> or Java arrays for
            sequences.</p>
          </li>

          <li>
            <p>Use <code class="inline-code">java.util.Map</code> for hashes.</p>
          </li>

          <li>
            <p>Use your custom bean class for hashes where the items
            correspond to the bean properties. For example the
            <code class="inline-code">price</code> property of <code class="inline-code">product</code>
            can be get as <code class="inline-code">product.price</code>. (The actions of
            the beans can be exposed as well; see much later <a href="pgui_misc_beanwrapper.html">here</a>)</p>
          </li>
        </ul><p>For example, let&#39;s build the data-model of the <a href="dgui_quickstart_basics.html#example.first">first example of the Template Author&#39;s
        Guide</a>. For convenience, here it is again:</p>

<div class="code-wrapper"><pre class="code-block code-data-model">(root)
  |
  +- user = &quot;Big Joe&quot;
  |
  +- latestProduct
      |
      +- url = &quot;products/greenmouse.html&quot;
      |
      +- name = &quot;green mouse&quot;</pre></div><p>This is the Java code fragment that builds this
        data-model:</p>

<div class="code-wrapper"><pre class="code-block code-unspecified">// Create the root hash
Map root = new HashMap();
// Put string ``user&#39;&#39; into the root
root.put(&quot;user&quot;, &quot;Big Joe&quot;);
// Create the hash for ``latestProduct&#39;&#39;
Map latest = new HashMap();
// and put it into the root
root.put(&quot;latestProduct&quot;, latest);
// put ``url&#39;&#39; and ``name&#39;&#39; into latest
latest.put(&quot;url&quot;, &quot;products/greenmouse.html&quot;);
latest.put(&quot;name&quot;, &quot;green mouse&quot;);</pre></div><p>For the <code class="inline-code">latestProduct</code> you migh as well use a
        Java Bean that has <code class="inline-code">url</code> and <code class="inline-code">name</code>
        properties (that is, an object that has public <code class="inline-code">String
        getURL()</code> and <code class="inline-code">String getName()</code> methods);
        it&#39;s the same from viewpoint of the template.</p><div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="pgui_quickstart_createconfiguration.html"><span>Previous</span></a><a class="paging-arrow next" href="pgui_quickstart_gettemplate.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><div class="col-right"><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="2020-07-09T23:48:39Z" title="Thursday, July 9, 2020 11:48:39 PM GMT">2020-07-09 23:48:39 GMT</time> </p>
<p class="copyright">
© <span itemprop="copyrightYear">1999</span>–2020
<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="https://apache.org/">The Apache Software Foundation</a> </p>
</div></div></div></body>
</html>
