AllHttpScopesHashModel (FreeMarker 2.3.35 API)
Description: declaration: package: freemarker.ext.jakarta.servlet, class: AllHttpScopesHashModel

Package freemarker.ext.jakarta.servlet

# Class AllHttpScopesHashModel

java.lang.Object
freemarker.template.WrappingTemplateModel
freemarker.template.SimpleHash
freemarker.ext.jakarta.servlet.AllHttpScopesHashModel

All Implemented Interfaces:
  `TemplateHashModel`, `TemplateHashModelEx`, `TemplateHashModelEx2`, `TemplateModel`, `Serializable`

public class AllHttpScopesHashModel extends SimpleHash
An extension of SimpleHash that looks up keys in the hash, then in the request, session, and servlet context scopes. Makes "Application", "Session" and "Request" keys largely obsolete, however we keep them for backward compatibility (also, "Request" is required for proper operation of JSP taglibs). It is on purpose that we didn't override `keys` and `values` methods. That way, only those variables assigned into the hash directly by a subclass of `FreemarkerServlet` that overrides `preTemplateProcess`) are discovered as "page" variables by the FM JSP PageContext implementation.

Note that there are two variants of this class: One for the legacy "javax" Servlet API in the `freemarker.ext``.servlet` package, and another for the newer Jakarta Servlet API in the `freemarker.ext``.jakarta.servlet` package (since 2.3.33). Use the variant that fits your Servlet container!

See Also:
  Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface freemarker.template.TemplateHashModelEx2

  `TemplateHashModelEx2.KeyValuePair, TemplateHashModelEx2.KeyValuePairIterator`

- ## Field Summary

  ### Fields inherited from interface freemarker.template.TemplateModel

  `NOTHING`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AllHttpScopesHashModel​(ObjectWrapper objectWrapper, jakarta.servlet.ServletContext context, jakarta.servlet.http.HttpServletRequest request)`
  Creates a new instance of AllHttpScopesHashModel for handling a single HTTP servlet request.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TemplateModel`
  `get​(String key)`
  Gets a `TemplateModel` from the hash.
  `void`
  `putUnlistedModel​(String key, TemplateModel model)`
  Stores a model in the hash so that it doesn't show up in `keys()` and `values()` methods.

  ### Methods inherited from class freemarker.template.SimpleHash

  `containsKey, copyMap, isEmpty, keys, keyValuePairIterator, put, put, putAll, remove, size, synchronizedWrapper, toMap, toString, values`

  ### Methods inherited from class freemarker.template.WrappingTemplateModel

  `getDefaultObjectWrapper, getObjectWrapper, setDefaultObjectWrapper, setObjectWrapper, wrap`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### AllHttpScopesHashModel

    public AllHttpScopesHashModel​(ObjectWrapper objectWrapper, jakarta.servlet.ServletContext context, jakarta.servlet.http.HttpServletRequest request)
    Creates a new instance of AllHttpScopesHashModel for handling a single HTTP servlet request.
    Parameters:
      `objectWrapper` - the object wrapper to use; not `null`.
      `context` - the servlet context of the web application
      `request` - the HTTP servlet request being processed

- ## Method Details

  - ### putUnlistedModel

    public void putUnlistedModel​(String key, TemplateModel model)
    Stores a model in the hash so that it doesn't show up in `keys()` and `values()` methods. Used to put the Application, Session, Request, RequestParameters and JspTaglibs objects.
    Parameters:
      `key` - the key under which the model is stored
      `model` - the stored model

  - ### get

    public TemplateModel get​(String key) throws TemplateModelException
    Description copied from interface: `TemplateHashModel`
    Gets a `TemplateModel` from the hash.
    Specified by:
      `get` in interface `TemplateHashModel`
    Overrides:
      `get` in class `SimpleHash`
    Parameters:
      `key` - The name by which the `TemplateModel` is identified in the template.
    Returns:
      The `TemplateModel` referred to by the key, or `null` if not found.
    Throws:
      `TemplateModelException`