Spring Framework

org.springframework.web.servlet.theme
Class CookieThemeResolver

java.lang.Object
  extended by org.springframework.web.util.CookieGenerator
      extended by org.springframework.web.servlet.theme.CookieThemeResolver
All Implemented Interfaces:
ThemeResolver

public class CookieThemeResolver
extends CookieGenerator
implements ThemeResolver

Implementation of ThemeResolver that uses a cookie sent back to the user in case of a custom setting, with a fallback to the default theme. This is particularly useful for stateless applications without user sessions.

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

Since:
17.06.2003
Author:
Jean-Pierre Pawlak, Juergen Hoeller
See Also:
setThemeName(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)

Field Summary
static java.lang.String DEFAULT_COOKIE_NAME
           
static java.lang.String ORIGINAL_DEFAULT_THEME_NAME
           
static java.lang.String THEME_REQUEST_ATTRIBUTE_NAME
          Name of the request attribute that holds the theme name.
 
Fields inherited from class org.springframework.web.util.CookieGenerator
DEFAULT_COOKIE_MAX_AGE, DEFAULT_COOKIE_PATH, logger
 
Constructor Summary
CookieThemeResolver()
           
 
Method Summary
 java.lang.String getDefaultThemeName()
          Return the name of the default theme.
 java.lang.String resolveThemeName(javax.servlet.http.HttpServletRequest request)
          Resolve the current theme name via the given request.
 void setDefaultThemeName(java.lang.String defaultThemeName)
          Set the name of the default theme.
 void setThemeName(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String themeName)
          Set the current theme name to the given one.
 
Methods inherited from class org.springframework.web.util.CookieGenerator
addCookie, createCookie, getCookieDomain, getCookieMaxAge, getCookieName, getCookiePath, isCookieSecure, removeCookie, setCookieDomain, setCookieMaxAge, setCookieName, setCookiePath, setCookieSecure
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ORIGINAL_DEFAULT_THEME_NAME

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

THEME_REQUEST_ATTRIBUTE_NAME

public static final java.lang.String THEME_REQUEST_ATTRIBUTE_NAME
Name of the request attribute that holds the theme name. Only used for overriding a cookie value if the theme has been changed in the course of the current request! Use RequestContext.getTheme() to retrieve the current theme in controllers or views.

See Also:
RequestContext.getTheme()

DEFAULT_COOKIE_NAME

public static final java.lang.String DEFAULT_COOKIE_NAME
Constructor Detail

CookieThemeResolver

public CookieThemeResolver()
Method Detail

setDefaultThemeName

public void setDefaultThemeName(java.lang.String defaultThemeName)
Set the name of the default theme.


getDefaultThemeName

public java.lang.String getDefaultThemeName()
Return the name of the default theme.


resolveThemeName

public java.lang.String resolveThemeName(javax.servlet.http.HttpServletRequest request)
Description copied from interface: ThemeResolver
Resolve the current theme name via the given request. Should return a default theme as fallback in any case.

Specified by:
resolveThemeName in interface ThemeResolver
Parameters:
request - request to be used for resolution
Returns:
the current theme name

setThemeName

public void setThemeName(javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response,
                         java.lang.String themeName)
Description copied from interface: ThemeResolver
Set the current theme name to the given one.

Specified by:
setThemeName in interface ThemeResolver
Parameters:
request - request to be used for theme name modification
response - response to be used for theme name modification
themeName - the new theme name

Spring Framework