public class

CookieLocaleResolver

extends CookieGenerator
implements LocaleResolver
java.lang.Object
   ↳ org.springframework.web.util.CookieGenerator
     ↳ org.springframework.web.servlet.i18n.CookieLocaleResolver

Class Overview

LocaleResolver implementation that uses a cookie sent back to the user in case of a custom setting, with a fallback to the specified default locale or the request's accept-header locale.

This is particularly useful for stateless applications without user sessions.

Custom controllers can thus override the user's locale by calling setLocale(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.util.Locale), for example responding to a certain locale change request.

Summary

[Expand]
Inherited Constants
From class org.springframework.web.util.CookieGenerator
Fields
public static final String DEFAULT_COOKIE_NAME The default cookie name used if none is explicitly set.
public static final String LOCALE_REQUEST_ATTRIBUTE_NAME The name of the request attribute that holds the locale.
[Expand]
Inherited Fields
From class org.springframework.web.util.CookieGenerator
Public Constructors
CookieLocaleResolver()
Creates a new instance of the CookieLocaleResolver class using the default cookie name.
Public Methods
Locale resolveLocale(HttpServletRequest request)
Resolve the current locale via the given request.
void setDefaultLocale(Locale defaultLocale)
Set a fixed Locale that this resolver will return if no cookie found.
void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale)
Set the current locale to the given one.
Protected Methods
Locale determineDefaultLocale(HttpServletRequest request)
Determine the default locale for the given request, Called if no locale cookie has been found.
Locale getDefaultLocale()
Return the fixed Locale that this resolver will return if no cookie found, if any.
[Expand]
Inherited Methods
From class org.springframework.web.util.CookieGenerator
From class java.lang.Object
From interface org.springframework.web.servlet.LocaleResolver

Fields

public static final String DEFAULT_COOKIE_NAME

The default cookie name used if none is explicitly set.

public static final String LOCALE_REQUEST_ATTRIBUTE_NAME

The name of the request attribute that holds the locale.

Only used for overriding a cookie value if the locale has been changed in the course of the current request! Use getLocale() to retrieve the current locale in controllers or views.

See Also

Public Constructors

public CookieLocaleResolver ()

Creates a new instance of the CookieLocaleResolver class using the default cookie name.

Public Methods

public Locale resolveLocale (HttpServletRequest request)

Resolve the current locale via the given request. Should return a default locale as fallback in any case.

Parameters
request the request to resolve the locale for
Returns
  • the current locale (never null)

public void setDefaultLocale (Locale defaultLocale)

Set a fixed Locale that this resolver will return if no cookie found.

public void setLocale (HttpServletRequest request, HttpServletResponse response, Locale locale)

Set the current locale to the given one.

Parameters
request the request to be used for locale modification
response the response to be used for locale modification
locale the new locale, or null to clear the locale

Protected Methods

protected Locale determineDefaultLocale (HttpServletRequest request)

Determine the default locale for the given request, Called if no locale cookie has been found.

The default implementation returns the specified default locale, if any, else falls back to the request's accept-header locale.

Parameters
request the request to resolve the locale for
Returns
  • the default locale (never null)

protected Locale getDefaultLocale ()

Return the fixed Locale that this resolver will return if no cookie found, if any.