org.springframework.web.servlet.i18n
Class CookieLocaleResolver

java.lang.Object
  extended byorg.springframework.web.servlet.i18n.CookieLocaleResolver
All Implemented Interfaces:
LocaleResolver

public class CookieLocaleResolver
extends java.lang.Object
implements LocaleResolver

Implementation of LocaleResolver that uses a cookie sent back to the user in case of a custom setting, with a fallback to the accept header locale. This is especially useful for stateless applications without user sessions.

Custom controllers can thus override the user's locale by calling setLocale, e.g. responding to a certain locale change request.

Since:
27.02.2003
Author:
Juergen Hoeller, Jean-Pierre Pawlak
See Also:
setLocale(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.util.Locale)

Field Summary
static int DEFAULT_COOKIE_MAX_AGE
           
static java.lang.String DEFAULT_COOKIE_NAME
           
static java.lang.String DEFAULT_COOKIE_PATH
           
static java.lang.String LOCALE_REQUEST_ATTRIBUTE_NAME
          Name of the request attribute that holds the locale.
 
Constructor Summary
CookieLocaleResolver()
           
 
Method Summary
 int getCookieMaxAge()
          Return the maximum age for locale cookies.
 java.lang.String getCookieName()
          Return the given name for locale cookies.
 java.lang.String getCookiePath()
          Return the path for locale cookies.
 java.util.Locale resolveLocale(javax.servlet.http.HttpServletRequest request)
          Resolve the current locale via the given request.
 void setCookieMaxAge(int cookieMaxAge)
          Use the given maximum age, specified in seconds, for locale cookies.
 void setCookieName(java.lang.String cookieName)
          Use the given name for locale cookies.
 void setCookiePath(java.lang.String cookiePath)
          Use the given path for locale cookies.
 void setLocale(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.util.Locale locale)
          Set the current locale to the given one.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOCALE_REQUEST_ATTRIBUTE_NAME

public static final java.lang.String LOCALE_REQUEST_ATTRIBUTE_NAME
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 RequestContext.getLocale() to retrieve the current locale in controllers or views.

See Also:
RequestContext.getLocale()

DEFAULT_COOKIE_NAME

public static final java.lang.String DEFAULT_COOKIE_NAME

DEFAULT_COOKIE_PATH

public static final java.lang.String DEFAULT_COOKIE_PATH
See Also:
Constant Field Values

DEFAULT_COOKIE_MAX_AGE

public static final int DEFAULT_COOKIE_MAX_AGE
See Also:
Constant Field Values
Constructor Detail

CookieLocaleResolver

public CookieLocaleResolver()
Method Detail

setCookieName

public void setCookieName(java.lang.String cookieName)
Use the given name for locale cookies.


getCookieName

public java.lang.String getCookieName()
Return the given name for locale cookies.


setCookiePath

public void setCookiePath(java.lang.String cookiePath)
Use the given path for locale cookies. The cookie is only visible for URLs in the path and below.


getCookiePath

public java.lang.String getCookiePath()
Return the path for locale cookies.


setCookieMaxAge

public void setCookieMaxAge(int cookieMaxAge)
Use the given maximum age, specified in seconds, for locale cookies. Useful special value: -1 ... not persistent, deleted when client shuts down


getCookieMaxAge

public int getCookieMaxAge()
Return the maximum age for locale cookies.


resolveLocale

public java.util.Locale resolveLocale(javax.servlet.http.HttpServletRequest request)
Description copied from interface: LocaleResolver
Resolve the current locale via the given request. Should return a default locale as fallback in any case.

Specified by:
resolveLocale in interface LocaleResolver
Parameters:
request - request to be used for resolution
Returns:
the current locale

setLocale

public void setLocale(javax.servlet.http.HttpServletRequest request,
                      javax.servlet.http.HttpServletResponse response,
                      java.util.Locale locale)
Description copied from interface: LocaleResolver
Set the current locale to the given one.

Specified by:
setLocale in interface LocaleResolver
Parameters:
request - request to be used for locale modification
response - response to be used for locale modification
locale - the new locale


Copyright (C) 2003-2004 The Spring Framework Project.