类 SessionAttributesHandler

java.lang.Object
cn.taketoday.web.handler.method.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().

从以下版本开始:
4.0 2022/4/8 23:18
作者:
Rossen Stoyanchev, Juergen Hoeller, Harry Yang
  • 字段详细资料

    • attributeNames

      private final Set<String> attributeNames
    • attributeTypes

      private final Set<Class<?>> attributeTypes
    • knownAttributeNames

      private final Set<String> knownAttributeNames
    • sessionAttributeStore

      private final SessionAttributeStore sessionAttributeStore
  • 构造器详细资料

    • 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(RequestContext) and cleanupAttributes(RequestContext).

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

      public void storeAttributes(RequestContext 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,Object> retrieveAttributes(RequestContext 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(RequestContext 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
    • retrieveAttribute

      @Nullable Object retrieveAttribute(RequestContext request, String attributeName)
      A pass-through call to the underlying SessionAttributeStore.
      参数:
      request - the current request
      attributeName - the name of the attribute of interest
      返回:
      the attribute value, or null if none