org.springframework.web.servlet.support

## Class AbstractFlashMapManager

- java.lang.Object
- - org.springframework.web.servlet.support.AbstractFlashMapManager

All Implemented Interfaces:
  FlashMapManager

Direct Known Subclasses:
  SessionFlashMapManager

    public abstract class AbstractFlashMapManager
    extends Object
    implements FlashMapManager

A base class for `FlashMapManager` implementations.

Since:
  3.1.1
Author:
  Rossen Stoyanchev

### Field Summary

Fields
`protected Log` `logger`

### Constructor Summary

Constructors
Constructor and Description
`AbstractFlashMapManager()`

### Method Summary

Methods
`int` `getFlashMapTimeout()` Return the amount of time in seconds before a FlashMap expires.
`UrlPathHelper` `getUrlPathHelper()` Return the UrlPathHelper implementation to use.
`protected boolean` `isFlashMapForRequest(FlashMap flashMap, HttpServletRequest request)` Whether the given FlashMap matches the current request.
`FlashMap` `retrieveAndUpdate(HttpServletRequest request, HttpServletResponse response)` Find a FlashMap saved by a previous request that matches to the current request, remove it from underlying storage, and also remove other expired FlashMap instances.
`protected abstract List<FlashMap>` `retrieveFlashMaps(HttpServletRequest request)` Retrieve saved FlashMap instances from underlying storage.
`void` `saveOutputFlashMap(FlashMap flashMap, HttpServletRequest request, HttpServletResponse response)` Save the given FlashMap, in some underlying storage and set the start of its expiration period.
`void` `setFlashMapTimeout(int flashMapTimeout)` Set the amount of time in seconds after a `FlashMap` is saved (at request completion) and before it expires.
`void` `setUrlPathHelper(UrlPathHelper urlPathHelper)` Set the UrlPathHelper to use to match FlashMap instances to requests.
`protected abstract void` `updateFlashMaps(List<FlashMap> flashMaps, HttpServletRequest request, HttpServletResponse response)` Update the FlashMap instances in some underlying storage.

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

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

### Field Detail

#### logger

    protected final Log logger

### Constructor Detail

#### AbstractFlashMapManager

    public AbstractFlashMapManager()

### Method Detail

#### setFlashMapTimeout

    public void setFlashMapTimeout(int flashMapTimeout)

Set the amount of time in seconds after a `FlashMap` is saved (at request completion) and before it expires.

The default value is 180 seconds.

#### getFlashMapTimeout

    public int getFlashMapTimeout()

Return the amount of time in seconds before a FlashMap expires.

#### setUrlPathHelper

    public void setUrlPathHelper(UrlPathHelper urlPathHelper)

Set the UrlPathHelper to use to match FlashMap instances to requests.

#### getUrlPathHelper

    public UrlPathHelper getUrlPathHelper()

Return the UrlPathHelper implementation to use.

#### retrieveAndUpdate

    public final FlashMap retrieveAndUpdate(HttpServletRequest request,
                             HttpServletResponse response)

Description copied from interface: `FlashMapManager`
Find a FlashMap saved by a previous request that matches to the current request, remove it from underlying storage, and also remove other expired FlashMap instances.

This method is invoked in the beginning of every request in contrast to `FlashMapManager.saveOutputFlashMap(org.springframework.web.servlet.FlashMap, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)`, which is invoked only when there are flash attributes to be saved - i.e. before a redirect.

Specified by:
  `retrieveAndUpdate` in interface `FlashMapManager`
Parameters:
  `request` - the current request
  `response` - the current response
Returns:
  a FlashMap matching the current request or `null`

#### retrieveFlashMaps

    protected abstract List<FlashMap> retrieveFlashMaps(HttpServletRequest request)

Retrieve saved FlashMap instances from underlying storage.

Parameters:
  `request` - the current request
Returns:
  a List with FlashMap instances or `null`

#### isFlashMapForRequest

    protected boolean isFlashMapForRequest(FlashMap flashMap,
                               HttpServletRequest request)

Whether the given FlashMap matches the current request. The default implementation uses the target request path and query parameters saved in the FlashMap.

#### saveOutputFlashMap

    public final void saveOutputFlashMap(FlashMap flashMap,
                          HttpServletRequest request,
                          HttpServletResponse response)

Description copied from interface: `FlashMapManager`
Save the given FlashMap, in some underlying storage and set the start of its expiration period.

Note: Invoke this method prior to a redirect in order to allow saving the FlashMap in the HTTP session or in a response cookie before the response is committed.

Specified by:
  `saveOutputFlashMap` in interface `FlashMapManager`
Parameters:
  `flashMap` - the FlashMap to save
  `request` - the current request
  `response` - the current response

#### updateFlashMaps

    protected abstract void updateFlashMaps(List<FlashMap> flashMaps,
                       HttpServletRequest request,
                       HttpServletResponse response)

Update the FlashMap instances in some underlying storage.

Parameters:
  `flashMaps` - a non-empty list of FlashMap instances to save
  `request` - the current request
  `response` - the current response