类 AbstractRedirectModelManager

java.lang.Object
cn.taketoday.web.view.AbstractRedirectModelManager
所有已实现的接口:
RedirectModelManager
直接已知子类:
SessionRedirectModelManager

public abstract class AbstractRedirectModelManager extends Object implements RedirectModelManager
A base class for RedirectModelManager implementations.
从以下版本开始:
4.0 2022/2/7 15:36
作者:
Rossen Stoyanchev, Juergen Hoeller, Sam Brannen, Harry Yang
  • 字段详细资料

    • DEFAULT_FLASH_MAPS_MUTEX

      protected static final Object DEFAULT_FLASH_MAPS_MUTEX
    • logger

      protected final cn.taketoday.logging.Logger logger
    • redirectModelTimeout

      private int redirectModelTimeout
  • 构造器详细资料

    • AbstractRedirectModelManager

      public AbstractRedirectModelManager()
  • 方法详细资料

    • setRedirectModelTimeout

      public void setRedirectModelTimeout(int redirectModelTimeout)
      Set the amount of time in seconds after a RedirectModel is saved (at request completion) and before it expires.

      The default value is 180 seconds.

    • getRedirectModelTimeout

      public int getRedirectModelTimeout()
      Return the amount of time in seconds before a RedirectModel expires.
    • retrieveAndUpdate

      @Nullable public RedirectModel retrieveAndUpdate(RequestContext context)
      从接口复制的说明: RedirectModelManager
      Find a RedirectModel saved by a previous request that matches to the current request, remove it from underlying storage, and also remove other expired RedirectModel instances.

      This method is invoked in the beginning of every request in contrast to RedirectModelManager.saveRedirectModel(cn.taketoday.web.RequestContext, cn.taketoday.web.view.RedirectModel), which is invoked only when there are flash attributes to be saved - i.e. before a redirect.

      指定者:
      retrieveAndUpdate 在接口中 RedirectModelManager
      参数:
      context - Current request context
      返回:
      a RedirectModel matching the current request or null
    • getExpired

      private List<RedirectModel> getExpired(List<RedirectModel> allMaps)
      Return a list of expired RedirectModel instances contained in the given list.
    • getMatchingRedirectModel

      @Nullable private RedirectModel getMatchingRedirectModel(List<RedirectModel> allMaps, RequestContext request)
      Return a RedirectModel contained in the given list that matches the request.
      返回:
      a matching RedirectModel or null
    • isRedirectModelForRequest

      protected boolean isRedirectModelForRequest(RedirectModel model, RequestContext request)
      Whether the given RedirectModel matches the current request. Uses the expected request path and query parameters saved in the RedirectModel.
    • getOriginatingRequestParams

      private cn.taketoday.util.MultiValueMap<String,String> getOriginatingRequestParams(RequestContext request)
    • saveRedirectModel

      public void saveRedirectModel(RequestContext context, @Nullable RedirectModel redirectModel)
      从接口复制的说明: RedirectModelManager
      Set a RedirectModel to current request context
      指定者:
      saveRedirectModel 在接口中 RedirectModelManager
      参数:
      context - current request context
      redirectModel - value
    • decodeAndNormalizePath

      @Nullable private String decodeAndNormalizePath(@Nullable String path, RequestContext request)
    • retrieveRedirectModel

      @Nullable protected abstract List<RedirectModel> retrieveRedirectModel(RequestContext request)
      Retrieve saved RedirectModel instances from the underlying storage.
      参数:
      request - the current request
      返回:
      a List with RedirectModel instances, or null if none found
    • updateRedirectModel

      protected abstract void updateRedirectModel(List<RedirectModel> redirectModels, RequestContext request)
      Update the RedirectModel instances in the underlying storage.
      参数:
      redirectModels - a (potentially empty) list of RedirectModel instances to save
      request - the current request
    • getRedirectModelMutex

      @Nullable protected Object getRedirectModelMutex(RequestContext request)
      Obtain a mutex for modifying the RedirectModel List as handled by retrieveRedirectModel(cn.taketoday.web.RequestContext) and updateRedirectModel(java.util.List<cn.taketoday.web.view.RedirectModel>, cn.taketoday.web.RequestContext),

      The default implementation returns a shared static mutex. Subclasses are encouraged to return a more specific mutex, or null to indicate that no synchronization is necessary.

      参数:
      request - the current request
      返回:
      the mutex to use (may be null if none applicable)