spring-framework / org.springframework.web.servlet.i18n / AbstractLocaleContextResolver

AbstractLocaleContextResolver

abstract class AbstractLocaleContextResolver : AbstractLocaleResolver, LocaleContextResolver

Abstract base class for LocaleContextResolver implementations. Provides support for a default locale and a default time zone.

Also provides pre-implemented versions of #resolveLocale and #setLocale, delegating to #resolveLocaleContext and #setLocaleContext.

Author
Juergen Hoeller

Since
4.0

See Also
#setDefaultLocale#setDefaultTimeZone

Constructors

<init>

AbstractLocaleContextResolver()

Abstract base class for LocaleContextResolver implementations. Provides support for a default locale and a default time zone.

Also provides pre-implemented versions of #resolveLocale and #setLocale, delegating to #resolveLocaleContext and #setLocaleContext.

Functions

getDefaultTimeZone

open fun getDefaultTimeZone(): TimeZone

Return the default TimeZone that this resolver is supposed to fall back to, if any.

resolveLocale

open fun resolveLocale(request: HttpServletRequest): Locale

setDefaultTimeZone

open fun setDefaultTimeZone(defaultTimeZone: TimeZone): Unit

Set a default TimeZone that this resolver will return if no other time zone found.

setLocale

open fun setLocale(request: HttpServletRequest, response: HttpServletResponse, locale: Locale): Unit

Inherited Functions

setDefaultLocale

open fun setDefaultLocale(defaultLocale: Locale): Unit

Set a default Locale that this resolver will return if no other locale found.

Inheritors

FixedLocaleResolver

open class FixedLocaleResolver : AbstractLocaleContextResolver

org.springframework.web.servlet.LocaleResolver implementation that always returns a fixed default locale and optionally time zone. Default is the current JVM's default locale.

Note: Does not support setLocale(Context), as the fixed locale and time zone cannot be changed.

SessionLocaleResolver

open class SessionLocaleResolver : AbstractLocaleContextResolver

org.springframework.web.servlet.LocaleResolver implementation that uses a locale attribute in the user's session in case of a custom setting, with a fallback to the specified default locale or the request's accept-header locale.

This is most appropriate if the application needs user sessions anyway, i.e. when the HttpSession does not have to be created just for storing the user's locale. The session may optionally contain an associated time zone attribute as well; alternatively, you may specify a default time zone.

Custom controllers can override the user's locale and time zone by calling #setLocale(Context) on the resolver, e.g. responding to a locale change request. As a more convenient alternative, consider using org.springframework.web.servlet.support.RequestContext#changeLocale.

In contrast to CookieLocaleResolver, this strategy stores locally chosen locale settings in the Servlet container's HttpSession. As a consequence, those settings are just temporary for each session and therefore lost when each session terminates.

Note that there is no direct relationship with external session management mechanisms such as the "Spring Session" project. This LocaleResolver will simply evaluate and modify corresponding HttpSession attributes against the current HttpServletRequest.