类 DefaultUriTemplateHandler

java.lang.Object
cn.taketoday.web.util.AbstractUriTemplateHandler
cn.taketoday.web.util.DefaultUriTemplateHandler
所有已实现的接口:
UriTemplateHandler

public class DefaultUriTemplateHandler extends AbstractUriTemplateHandler
Default implementation of UriTemplateHandler based on the use of UriComponentsBuilder for expanding and encoding variables.

There are also several properties to customize how URI template handling is performed, including a baseUrl to be used as a prefix for all URI templates and a couple of encoding related options — parsePath and strictEncoding respectively.

从以下版本开始:
4.0
作者:
Rossen Stoyanchev
  • 字段详细资料

    • parsePath

      private boolean parsePath
    • strictEncoding

      private boolean strictEncoding
  • 构造器详细资料

    • DefaultUriTemplateHandler

      public DefaultUriTemplateHandler()
  • 方法详细资料

    • setParsePath

      public void setParsePath(boolean parsePath)
      Whether to parse the path of a URI template string into path segments.

      If set to true the URI template path is immediately decomposed into path segments any URI variables expanded into it are then subject to path segment encoding rules. In effect URI variables in the path have any "/" characters percent encoded.

      By default this is set to false in which case the path is kept as a full path and expanded URI variables will preserve "/" characters.

      参数:
      parsePath - whether to parse the path into path segments
    • shouldParsePath

      public boolean shouldParsePath()
      Whether the handler is configured to parse the path into path segments.
    • setStrictEncoding

      public void setStrictEncoding(boolean strictEncoding)
      Whether to encode characters outside the unreserved set as defined in RFC 3986 Section 2. This ensures a URI variable value will not contain any characters with a reserved purpose.

      By default this is set to false in which case only characters illegal for the given URI component are encoded. For example when expanding a URI variable into a path segment the "/" character is illegal and encoded. The ";" character however is legal and not encoded even though it has a reserved purpose.

      Note: this property supersedes the need to also set the parsePath property.

      参数:
      strictEncoding - whether to perform strict encoding
    • isStrictEncoding

      public boolean isStrictEncoding()
      Whether to strictly encode any character outside the unreserved set.
    • expandInternal

      protected URI expandInternal(String uriTemplate, Map<String,?> uriVariables)
      从类复制的说明: AbstractUriTemplateHandler
      Actually expand and encode the URI template.
      指定者:
      expandInternal 在类中 AbstractUriTemplateHandler
    • expandInternal

      protected URI expandInternal(String uriTemplate, Object... uriVariables)
      从类复制的说明: AbstractUriTemplateHandler
      Actually expand and encode the URI template.
      指定者:
      expandInternal 在类中 AbstractUriTemplateHandler
    • initUriComponentsBuilder

      protected UriComponentsBuilder initUriComponentsBuilder(String uriTemplate)
      Create a UriComponentsBuilder from the URI template string. This implementation also breaks up the path into path segments depending on whether parsePath is enabled.
    • expandAndEncode

      protected UriComponents expandAndEncode(UriComponentsBuilder builder, Map<String,?> uriVariables)
    • expandAndEncode

      protected UriComponents expandAndEncode(UriComponentsBuilder builder, Object[] uriVariables)
    • createUri

      private URI createUri(UriComponents uriComponents)