org.springframework.web.servlet

## Class FlashMap

- java.lang.Object
- - java.util.AbstractMap<K,V>
  - - java.util.HashMap<String,Object>
    - - org.springframework.web.servlet.FlashMap

All Implemented Interfaces:
  Serializable, Cloneable, Comparable<FlashMap>, Map<String,Object>

    public final class FlashMap
    extends HashMap<String,Object>
    implements Comparable<FlashMap>

A FlashMap provides a way for one request to store attributes intended for use in another. This is most commonly needed when redirecting from one URL to another -- e.g. the Post/Redirect/Get pattern. A FlashMap is saved before the redirect (typically in the session) and is made available after the redirect and removed immediately.

A FlashMap can be set up with a request path and request parameters to help identify the target request. Without this information, a FlashMap is made available to the next request, which may or may not be the intended recipient. On a redirect, the target URL is known and a FlashMap can be updated with that information. This is done automatically when the `org.springframework.web.servlet.view.RedirectView` is used.

Note: annotated controllers will usually not use FlashMap directly. See `org.springframework.web.servlet.mvc.support.RedirectAttributes` for an overview of using flash attributes in annotated controllers.

Since:
  3.1
Author:
  Rossen Stoyanchev
See Also:
  `FlashMapManager`, Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class java.util.AbstractMap

`AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>`

### Constructor Summary

Constructors
Constructor and Description
`FlashMap()`

### Method Summary

Methods
`FlashMap` `addTargetRequestParam(String name, String value)` Provide a request parameter identifying the request for this FlashMap.
`FlashMap` `addTargetRequestParams(MultiValueMap<String,String> params)` Provide request parameters identifying the request for this FlashMap.
`int` `compareTo(FlashMap other)` Compare two FlashMaps and prefer the one that specifies a target URL path or has more target URL parameters.
`MultiValueMap<String,String>` `getTargetRequestParams()` Return the parameters identifying the target request, or an empty map.
`String` `getTargetRequestPath()` Return the target URL path or `null`.
`boolean` `isExpired()` Whether this instance has expired depending on the amount of elapsed time since the call to `startExpirationPeriod(int)`.
`void` `setTargetRequestPath(String path)` Provide a URL path to help identify the target request for this FlashMap.
`void` `startExpirationPeriod(int timeToLive)` Start the expiration period for this instance.
`String` `toString()`

### Methods inherited from class java.util.HashMap

`clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values`

### Methods inherited from class java.util.AbstractMap

`equals, hashCode`

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

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Map

`equals, hashCode`

### Constructor Detail

#### FlashMap

    public FlashMap()

### Method Detail

#### setTargetRequestPath

    public void setTargetRequestPath(String path)

Provide a URL path to help identify the target request for this FlashMap. The path may be absolute (e.g. /application/resource) or relative to the current request (e.g. ../resource).

Parameters:
  `path` - the URI path

#### getTargetRequestPath

    public String getTargetRequestPath()

Return the target URL path or `null`.

#### addTargetRequestParams

    public FlashMap addTargetRequestParams(MultiValueMap<String,String> params)

Provide request parameters identifying the request for this FlashMap.

Parameters:
  `params` - a Map with the names and values of expected parameters.

#### addTargetRequestParam

    public FlashMap addTargetRequestParam(String name,
                                 String value)

Provide a request parameter identifying the request for this FlashMap.

Parameters:
  `name` - the expected parameter name, skipped if empty or `null`
  `value` - the expected value, skipped if empty or `null`

#### getTargetRequestParams

    public MultiValueMap<String,String> getTargetRequestParams()

Return the parameters identifying the target request, or an empty map.

#### startExpirationPeriod

    public void startExpirationPeriod(int timeToLive)

Start the expiration period for this instance.

Parameters:
  `timeToLive` - the number of seconds before expiration

#### isExpired

    public boolean isExpired()

Whether this instance has expired depending on the amount of elapsed time since the call to `startExpirationPeriod(int)`.

#### compareTo

    public int compareTo(FlashMap other)

Compare two FlashMaps and prefer the one that specifies a target URL path or has more target URL parameters. Before comparing FlashMap instances ensure that they match a given request.

Specified by:
  `compareTo` in interface `Comparable<FlashMap>`

#### toString

    public String toString()

Overrides:
  `toString` in class `AbstractMap<String,Object>`