Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.web.method.annotation
Class SessionAttributesHandler

    java.lang.Object
      org.springframework.web.method.annotation.SessionAttributesHandler

    public class SessionAttributesHandler

extends java.lang.Object

Manages controller-specific session attributes declared via `@SessionAttributes`. Actual storage is delegated to a `SessionAttributeStore` instance.

When a controller annotated with `@SessionAttributes` adds attributes to its model, those attributes are checked against names and types specified via `@SessionAttributes`. Matching model attributes are saved in the HTTP session and remain there until the controller calls `SessionStatus.setComplete()`.

Since:
  3.1
Author:
  Rossen Stoyanchev

Constructor Summary
`SessionAttributesHandler(java.lang.Class<?> handlerType, SessionAttributeStore sessionAttributeStore)` Create a new instance for a controller type.

Method Summary
`void` | `cleanupAttributes(WebRequest request)` Remove "known" attributes from the session, i.e.
`boolean` | `hasSessionAttributes()` Whether the controller represented by this instance has declared any session attributes through an `SessionAttributes` annotation.
`boolean` | `isHandlerSessionAttribute(java.lang.String attributeName, java.lang.Class<?> attributeType)` Whether the attribute name or type match the names and types specified via `@SessionAttributes` in underlying controller.
`java.util.Map<java.lang.String,java.lang.Object>` | `retrieveAttributes(WebRequest request)` Retrieve "known" attributes from the session, i.e.
`void` | `storeAttributes(WebRequest request, java.util.Map<java.lang.String,?> attributes)` Store a subset of the given attributes in the session.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SessionAttributesHandler

    public SessionAttributesHandler(java.lang.Class<?> handlerType,
                                    SessionAttributeStore sessionAttributeStore)

  Create a new instance for a controller type. Session attribute names and types are extracted from the `@SessionAttributes` annotation, if present, on the given type.

  Parameters:
    `handlerType` - the controller type
    `sessionAttributeStore` - used for session access

Method Detail

### hasSessionAttributes

    public boolean hasSessionAttributes()

  Whether the controller represented by this instance has declared any session attributes through an `SessionAttributes` annotation.

### isHandlerSessionAttribute

    public boolean isHandlerSessionAttribute(java.lang.String attributeName,
                                             java.lang.Class<?> attributeType)

  Whether the attribute name or type match the names and types specified via `@SessionAttributes` in underlying controller.

  Attributes successfully resolved through this method are "remembered" and subsequently used in `retrieveAttributes(WebRequest)` and `cleanupAttributes(WebRequest)`.

  Parameters:
    `attributeName` - the attribute name to check, never `null`
    `attributeType` - the type for the attribute, possibly `null`

### storeAttributes

    public void storeAttributes(WebRequest request,
                                java.util.Map<java.lang.String,?> attributes)

  Store a subset of the given attributes in the session. Attributes not declared as session attributes via `@SessionAttributes` are ignored.

  Parameters:
    `request` - the current request
    `attributes` - candidate attributes for session storage

### retrieveAttributes

    public java.util.Map<java.lang.String,java.lang.Object> retrieveAttributes(WebRequest request)

  Retrieve "known" attributes from the session, i.e. attributes listed by name in `@SessionAttributes` or attributes previously stored in the model that matched by type.

  Parameters:
    `request` - the current request
  Returns:
    a map with handler session attributes, possibly empty

### cleanupAttributes

    public void cleanupAttributes(WebRequest request)

  Remove "known" attributes from the session, i.e. attributes listed by name in `@SessionAttributes` or attributes previously stored in the model that matched by type.

  Parameters:
    `request` - the current request

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD