Class SessionLocaleResolver

All Implemented Interfaces:
LocaleContextResolver, LocaleResolver

public class SessionLocaleResolver extends AbstractLocaleContextResolver
LocaleResolver implementation that uses a locale attribute in the user's session in case of a custom setting, with a fallback to the configured default locale, the request's Accept-Language header, or the default locale for the server.

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 RequestContext.changeLocale(java.util.Locale).

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.

Juergen Hoeller, Vedran Pavic
See Also: