freemarker.ext.servlet

## Class AllHttpScopesHashModel

- java.lang.Object
- - freemarker.template.WrappingTemplateModel
  - - freemarker.template.SimpleHash
    - - freemarker.ext.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.

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 and Description
`AllHttpScopesHashModel(ObjectWrapper wrapper, javax.servlet.ServletContext context, javax.servlet.http.HttpServletRequest request)` Creates a new instance of AllHttpScopesHashModel for handling a single HTTP servlet request.

### Method Summary

All Methods Instance Methods Concrete Methods
`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 Detail

#### AllHttpScopesHashModel

    public AllHttpScopesHashModel(ObjectWrapper wrapper,
                                  javax.servlet.ServletContext context,
                                  javax.servlet.http.HttpServletRequest request)

Creates a new instance of AllHttpScopesHashModel for handling a single HTTP servlet request.

Parameters:
  `wrapper` - the object wrapper to use
  `context` - the servlet context of the web application
  `request` - the HTTP servlet request being processed

### Method Detail

#### 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`