类 AbstractMappingContentNegotiationStrategy
- java.lang.Object
- org.springframework.web.accept.MappingMediaTypeFileExtensionResolver
- org.springframework.web.accept.AbstractMappingContentNegotiationStrategy
public abstract class AbstractMappingContentNegotiationStrategy extends MappingMediaTypeFileExtensionResolver implements ContentNegotiationStrategy
Base class forContentNegotiationStrategy
implementations with the steps to resolve a request to media types.First a key (e.g. "json", "pdf") must be extracted from the request (e.g. file extension, query param). The key must then be resolved to media type(s) through the base class
MappingMediaTypeFileExtensionResolver
which stores such mappings.The method
handleNoMatch(org.springframework.web.context.request.NativeWebRequest, java.lang.String)
allow sub-classes to plug in additional ways of looking up media types (e.g. through the Java Activation framework, orServletContext.getMimeType(java.lang.String)
. Media types resolved via base classes are then added to the base classMappingMediaTypeFileExtensionResolver
, i.e. cached for new lookups.- 从以下版本开始:
- 3.2
- 作者:
- Rossen Stoyanchev
构造器概要
构造器 构造器 说明 AbstractMappingContentNegotiationStrategy(Map<String,MediaType> mediaTypes)
Create an instance with the given map of file extensions and media types.
方法概要
所有方法 实例方法 抽象方法 具体方法 修饰符和类型 方法 说明 protected abstract String
getMediaTypeKey(NativeWebRequest request)
Extract a key from the request to use to look up media types.protected void
handleMatch(String key, MediaType mediaType)
Override to provide handling when a key is successfully resolved viaMappingMediaTypeFileExtensionResolver.lookupMediaType(java.lang.String)
.protected MediaType
handleNoMatch(NativeWebRequest request, String key)
Override to provide handling when a key is not resolved via.List<MediaType>
resolveMediaTypeKey(NativeWebRequest webRequest, String key)
An alternative toresolveMediaTypes(NativeWebRequest)
that accepts an already extracted key.List<MediaType>
resolveMediaTypes(NativeWebRequest webRequest)
Resolve the given request to a list of media types.从类继承的方法 org.springframework.web.accept.MappingMediaTypeFileExtensionResolver
addMapping, getAllFileExtensions, getAllMediaTypes, getMediaTypes, lookupMediaType, resolveFileExtensions
构造器详细资料
AbstractMappingContentNegotiationStrategy
public AbstractMappingContentNegotiationStrategy(Map<String,MediaType> mediaTypes)
Create an instance with the given map of file extensions and media types.
方法详细资料
resolveMediaTypes
public List<MediaType> resolveMediaTypes(NativeWebRequest webRequest) throws HttpMediaTypeNotAcceptableException
从接口复制的说明:ContentNegotiationStrategy
Resolve the given request to a list of media types. The returned list is ordered by specificity first and by quality parameter second.- 指定者:
resolveMediaTypes
在接口中ContentNegotiationStrategy
- 参数:
webRequest
- the current request- 返回:
- the requested media types or an empty list (never
null
) - 抛出:
HttpMediaTypeNotAcceptableException
- if the requested media types cannot be parsed
resolveMediaTypeKey
public List<MediaType> resolveMediaTypeKey(NativeWebRequest webRequest, String key) throws HttpMediaTypeNotAcceptableException
An alternative toresolveMediaTypes(NativeWebRequest)
that accepts an already extracted key.- 抛出:
HttpMediaTypeNotAcceptableException
- 从以下版本开始:
- 3.2.16
getMediaTypeKey
protected abstract String getMediaTypeKey(NativeWebRequest request)
Extract a key from the request to use to look up media types.- 返回:
- the lookup key, or
null
if none
handleMatch
protected void handleMatch(String key, MediaType mediaType)
Override to provide handling when a key is successfully resolved viaMappingMediaTypeFileExtensionResolver.lookupMediaType(java.lang.String)
.
handleNoMatch
protected MediaType handleNoMatch(NativeWebRequest request, String key) throws HttpMediaTypeNotAcceptableException
Override to provide handling when a key is not resolved via.MappingMediaTypeFileExtensionResolver.lookupMediaType(java.lang.String)
. Sub-classes can take further steps to determine the media type(s). If a MediaType is returned from this method it will be added to the cache in the base class.