类 SessionAttributesHandler


  • public class SessionAttributesHandler
    extends 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().

    从以下版本开始:
    3.1
    作者:
    Rossen Stoyanchev, Juergen Hoeller
    • 构造器详细资料

      • SessionAttributesHandler

        public SessionAttributesHandler​(Class<?> handlerType,
                                        SessionAttributeStore sessionAttributeStore)
        Create a new session attributes handler. Session attribute names and types are extracted from the @SessionAttributes annotation, if present, on the given type.
        参数:
        handlerType - the controller type
        sessionAttributeStore - used for session access
    • 方法详细资料

      • hasSessionAttributes

        public boolean hasSessionAttributes()
        Whether the controller represented by this instance has declared any session attributes through an SessionAttributes annotation.
      • isHandlerSessionAttribute

        public boolean isHandlerSessionAttribute​(String attributeName,
                                                 Class<?> attributeType)
        Whether the attribute name or type match the names and types specified via @SessionAttributes on the underlying controller.

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

        参数:
        attributeName - the attribute name to check
        attributeType - the type for the attribute
      • storeAttributes

        public void storeAttributes​(WebRequest request,
                                    Map<String,​?> attributes)
        Store a subset of the given attributes in the session. Attributes not declared as session attributes via @SessionAttributes are ignored.
        参数:
        request - the current request
        attributes - candidate attributes for session storage
      • retrieveAttributes

        public Map<String,​ObjectretrieveAttributes​(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.
        参数:
        request - the current request
        返回:
        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.
        参数:
        request - the current request