Class AcceptHeaderLocaleContextResolver
- All Implemented Interfaces:
- LocaleContextResolver
LocaleContextResolver implementation that looks for a match between
 locales in the Accept-Language header and a list of configured
 supported locales.
 See setSupportedLocales(List) for further details on how
 supported and requested locales are matched.
 
Note: Does not support setLocaleContext(org.springframework.web.server.ServerWebExchange, org.springframework.context.i18n.LocaleContext), since the accept header
 can only be changed through changing the client's locale settings.
- Since:
- 5.0
- Author:
- Sebastien Deleuze, Juergen Hoeller
- See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionThe configured default locale, if any.Return the configured list of supported locales.resolveLocaleContext(ServerWebExchange exchange) Resolve the current locale context via the given exchange.voidsetDefaultLocale(Locale defaultLocale) Configure a fixed default locale to fall back on if the request does not have an "Accept-Language" header (not set by default).voidsetLocaleContext(ServerWebExchange exchange, LocaleContext locale) Set the current locale context to the given one, potentially including a locale with associated time zone information.voidsetSupportedLocales(List<Locale> locales) Configure the list of supported locales to compare and match againstrequested locales.
- 
Constructor Details- 
AcceptHeaderLocaleContextResolverpublic AcceptHeaderLocaleContextResolver()
 
- 
- 
Method Details- 
setSupportedLocalesConfigure the list of supported locales to compare and match againstrequested locales.In order for a supported locale to be considered a match, it must match on both country and language. If you want to support a language-only match as a fallback, you must configure the language explicitly as a supported locale. For example, if the supported locales are ["de-DE","en-US"], then a request for"en-GB"will not match, and neither will a request for"en". If you want to support additional locales for a given language such as"en", then you must add it to the list of supported locales.If there is no match, then the defaultLocaleis used, if configured, or otherwise falling back on the first requested locale.- Parameters:
- locales- the supported locales
 
- 
getSupportedLocalesReturn the configured list of supported locales.
- 
setDefaultLocaleConfigure a fixed default locale to fall back on if the request does not have an "Accept-Language" header (not set by default).- Parameters:
- defaultLocale- the default locale to use
 
- 
getDefaultLocaleThe configured default locale, if any.This method may be overridden in subclasses. 
- 
resolveLocaleContextDescription copied from interface:LocaleContextResolverResolve the current locale context via the given exchange.The returned context may be a TimeZoneAwareLocaleContext, containing a locale with associated time zone information. Simply apply aninstanceofcheck and downcast accordingly.Custom resolver implementations may also return extra settings in the returned context, which again can be accessed through downcasting. - Specified by:
- resolveLocaleContextin interface- LocaleContextResolver
- Parameters:
- exchange- current server exchange
- Returns:
- the current locale context (never null)
 
- 
setLocaleContextDescription copied from interface:LocaleContextResolverSet the current locale context to the given one, potentially including a locale with associated time zone information.- Specified by:
- setLocaleContextin interface- LocaleContextResolver
- Parameters:
- exchange- current server exchange
- locale- the new locale context, or- nullto clear the locale
- See Also:
 
 
-