Package 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 -- for example, 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 extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,V extends Object>`

## Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K extends Object,V extends Object>`

## Constructor Summary

Constructors
Constructor
Description
`FlashMap()`

## Method Summary

Modifier and Type
Method
Description
`FlashMap`
`addTargetRequestParam(String name, String value)`
Provide a request parameter identifying the request for this FlashMap.
`FlashMap`
`addTargetRequestParams(org.springframework.util.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.
`boolean`
`equals(Object other)`
`long`
`getExpirationTime()`
Return the expiration time for the FlashMap or -1 if the expiration period has not started.
`org.springframework.util.MultiValueMap<String,String>`
`getTargetRequestParams()`
Return the parameters identifying the target request, or an empty map.
`String`
`getTargetRequestPath()`
Return the target URL path (or `null` if none specified).
`int`
`hashCode()`
`boolean`
`isExpired()`
Return whether this instance has expired depending on the amount of elapsed time since the call to `startExpirationPeriod(int)`.
`void`
`setExpirationTime(long expirationTime)`
Set the expiration time for the FlashMap.
`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, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values`

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

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

## Constructor Details

### FlashMap

public FlashMap()

## Method Details

### setTargetRequestPath

public void setTargetRequestPath(@Nullable String path)
Provide a URL path to help identify the target request for this FlashMap.

The path may be absolute (for example, "/application/resource") or relative to the current request (for example, "../resource").

### getTargetRequestPath

@Nullable public String getTargetRequestPath()
Return the target URL path (or `null` if none specified).

### addTargetRequestParams

public FlashMap addTargetRequestParams(@Nullable org.springframework.util.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)
  `value` - the expected value (skipped if empty)

### getTargetRequestParams

public org.springframework.util.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

### setExpirationTime

public void setExpirationTime(long expirationTime)
Set the expiration time for the FlashMap. This is provided for serialization purposes but can also be used instead `startExpirationPeriod(int)`.

Since:
  4.2

### getExpirationTime

public long getExpirationTime()
Return the expiration time for the FlashMap or -1 if the expiration period has not started.

Since:
  4.2

### isExpired

public boolean isExpired()
Return 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>`

### equals

public boolean equals(@Nullable Object other)

Specified by:
  `equals` in interface `Map<String,Object>`
Overrides:
  `equals` in class `AbstractMap<String,Object>`

### hashCode

public int hashCode()

Specified by:
  `hashCode` in interface `Map<String,Object>`
Overrides:
  `hashCode` in class `AbstractMap<String,Object>`

### toString

public String toString()

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