spring-framework / org.springframework.web.accept / ContentNegotiationManager

ContentNegotiationManager

open class ContentNegotiationManager : ContentNegotiationStrategy, MediaTypeFileExtensionResolver

Central class to determine requested MediaType for a request. This is done by delegating to a list of configured ContentNegotiationStrategy instances.

Also provides methods to look up file extensions for a media type. This is done by delegating to the list of configured MediaTypeFileExtensionResolver instances.

Author
Rossen Stoyanchev

Author
Juergen Hoeller

Since
3.2

Constructors

<init>

ContentNegotiationManager(vararg strategies: ContentNegotiationStrategy)

Create an instance with the given list of ContentNegotiationStrategy strategies each of which may also be an instance of MediaTypeFileExtensionResolver.

ContentNegotiationManager(strategies: MutableCollection<ContentNegotiationStrategy>)

A collection-based alternative to #ContentNegotiationManager(ContentNegotiationStrategy...).

ContentNegotiationManager()

Create a default instance with a HeaderContentNegotiationStrategy.

Functions

addFileExtensionResolvers

open fun addFileExtensionResolvers(vararg resolvers: MediaTypeFileExtensionResolver): Unit

Register more MediaTypeFileExtensionResolver instances in addition to those detected at construction.

getAllFileExtensions

open fun getAllFileExtensions(): MutableList<String>

{@inheritDoc}

At startup this method returns extensions explicitly registered with either PathExtensionContentNegotiationStrategy or ParameterContentNegotiationStrategy. At runtime if there is a "path extension" strategy and its useRegisteredExtensionsOnly property is set to "false", the list of extensions may increase as file extensions are resolved via org.springframework.http.MediaTypeFactory and cached.

getStrategies

open fun getStrategies(): MutableList<ContentNegotiationStrategy>

Return the configured content negotiation strategies.

getStrategy

open fun <T : ContentNegotiationStrategy> getStrategy(strategyType: Class<T>): T

Find a ContentNegotiationStrategy of the given type.

resolveFileExtensions

open fun resolveFileExtensions(mediaType: MediaType): MutableList<String>

resolveMediaTypes

open fun resolveMediaTypes(request: NativeWebRequest): MutableList<MediaType>