org.springframework.web.servlet.theme
Class SessionThemeResolver

java.lang.Object
  extended by org.springframework.web.servlet.theme.AbstractThemeResolver
      extended by org.springframework.web.servlet.theme.SessionThemeResolver
All Implemented Interfaces:
ThemeResolver

public class SessionThemeResolver
extends AbstractThemeResolver

Implementation of ThemeResolver that uses a theme attribute in the user's session in case of a custom setting, with a fallback to the default theme. This is most appropriate if the application needs user sessions anyway.

Custom controllers can override the user's theme by calling setThemeName, e.g. responding to a 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 String THEME_SESSION_ATTRIBUTE_NAME
          Name of the session attribute that holds the theme name.
 
Fields inherited from class org.springframework.web.servlet.theme.AbstractThemeResolver
ORIGINAL_DEFAULT_THEME_NAME
 
Constructor Summary
SessionThemeResolver()
           
 
Method Summary
 String resolveThemeName(HttpServletRequest request)
          Resolve the current theme name via the given request.
 void setThemeName(HttpServletRequest request, HttpServletResponse response, String themeName)
          Set the current theme name to the given one.
 
Methods inherited from class org.springframework.web.servlet.theme.AbstractThemeResolver
getDefaultThemeName, setDefaultThemeName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

THEME_SESSION_ATTRIBUTE_NAME

public static final String THEME_SESSION_ATTRIBUTE_NAME
Name of the session attribute that holds the theme name. Only used internally by this implementation. Use RequestContext(Utils).getTheme() to retrieve the current theme in controllers or views.

See Also:
RequestContext.getTheme(), RequestContextUtils.getTheme(javax.servlet.http.HttpServletRequest)
Constructor Detail

SessionThemeResolver

public SessionThemeResolver()
Method Detail

resolveThemeName

public String resolveThemeName(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.

Parameters:
request - request to be used for resolution
Returns:
the current theme name

setThemeName

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

Parameters:
request - request to be used for theme name modification
response - response to be used for theme name modification
themeName - the new theme name