Class CookieThemeResolver
java.lang.Object
org.springframework.web.util.CookieGenerator
org.springframework.web.servlet.theme.CookieThemeResolver
- All Implemented Interfaces:
ThemeResolver
ThemeResolver
implementation 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:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The default name of the cookie that holds the theme name.static final String
The default theme name used if no alternative is provided.static final String
Name of the request attribute that holds the theme name.Fields inherited from class org.springframework.web.util.CookieGenerator
DEFAULT_COOKIE_PATH, logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturn the name of the default theme.resolveThemeName
(HttpServletRequest request) Resolve the current theme name via the given request.void
setDefaultThemeName
(String defaultThemeName) Set the name of the default theme.void
setThemeName
(HttpServletRequest request, HttpServletResponse response, 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, isCookieHttpOnly, isCookieSecure, removeCookie, setCookieDomain, setCookieHttpOnly, setCookieMaxAge, setCookieName, setCookiePath, setCookieSecure
-
Field Details
-
ORIGINAL_DEFAULT_THEME_NAME
The default theme name used if no alternative is provided.- See Also:
-
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:
-
DEFAULT_COOKIE_NAME
The default name of the cookie that holds the theme name.
-
-
Constructor Details
-
CookieThemeResolver
public CookieThemeResolver()
-
-
Method Details
-
setDefaultThemeName
Set the name of the default theme. -
getDefaultThemeName
Return the name of the default theme. -
resolveThemeName
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 interfaceThemeResolver
- Parameters:
request
- the request to be used for resolution- Returns:
- the current theme name
-
setThemeName
public void setThemeName(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable String themeName) Description copied from interface:ThemeResolver
Set the current theme name to the given one.- Specified by:
setThemeName
in interfaceThemeResolver
- Parameters:
request
- the request to be used for theme name modificationresponse
- the response to be used for theme name modificationthemeName
- the new theme name (null
or empty to reset it)
-