Class LocaleChangeInterceptor
- java.lang.Object
- org.springframework.web.servlet.handler.HandlerInterceptorAdapter
- org.springframework.web.servlet.i18n.LocaleChangeInterceptor
- All Implemented Interfaces:
AsyncHandlerInterceptor
,HandlerInterceptor
public class LocaleChangeInterceptor extends HandlerInterceptorAdapter
Interceptor that allows for changing the current locale on every request, via a configurable request parameter (default parameter name: "locale").- Since:
- 20.06.2003
- Author:
- Juergen Hoeller, Rossen Stoyanchev
- See Also:
LocaleResolver
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".protected Log
logger
Constructor Summary
Constructors Constructor Description LocaleChangeInterceptor()
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description String[]
getHttpMethods()
Return the configured HTTP methods.String
getParamName()
Return the name of the parameter that contains a locale specification in a locale change request.boolean
isIgnoreInvalidLocale()
Return whether to ignore an invalid value for the locale parameter.boolean
isLanguageTagCompliant()
Deprecated.as of 5.1 since it always returnstrue
nowprotected Locale
parseLocaleValue(String localeValue)
Parse the given locale value as coming from a request parameter.boolean
preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
This implementation always returnstrue
.void
setHttpMethods(String... httpMethods)
Configure the HTTP method(s) over which the locale can be changed.void
setIgnoreInvalidLocale(boolean ignoreInvalidLocale)
Set whether to ignore an invalid value for the locale parameter.void
setLanguageTagCompliant(boolean languageTagCompliant)
Deprecated.as of 5.1 since it only acceptstrue
nowvoid
setParamName(String paramName)
Set the name of the parameter that contains a locale specification in a locale change request.Methods inherited from class org.springframework.web.servlet.handler.HandlerInterceptorAdapter
afterCompletion, afterConcurrentHandlingStarted, postHandle
Field Detail
DEFAULT_PARAM_NAME
public static final String DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".- See Also:
- Constant Field Values
Constructor Detail
LocaleChangeInterceptor
public LocaleChangeInterceptor()
Method Detail
setParamName
public void setParamName(String paramName)
Set the name of the parameter that contains a locale specification in a locale change request. Default is "locale".
getParamName
public String getParamName()
Return the name of the parameter that contains a locale specification in a locale change request.
setHttpMethods
public void setHttpMethods(@Nullable String... httpMethods)
Configure the HTTP method(s) over which the locale can be changed.- Parameters:
httpMethods
- the methods- Since:
- 4.2
getHttpMethods
@Nullable public String[] getHttpMethods()
Return the configured HTTP methods.- Since:
- 4.2
setIgnoreInvalidLocale
public void setIgnoreInvalidLocale(boolean ignoreInvalidLocale)
Set whether to ignore an invalid value for the locale parameter.- Since:
- 4.2.2
isIgnoreInvalidLocale
public boolean isIgnoreInvalidLocale()
Return whether to ignore an invalid value for the locale parameter.- Since:
- 4.2.2
setLanguageTagCompliant
@Deprecated public void setLanguageTagCompliant(boolean languageTagCompliant)
Deprecated.as of 5.1 since it only acceptstrue
nowSpecify whether to parse request parameter values as BCP 47 language tags instead of Java's legacy locale specification format.NOTE: As of 5.1, this resolver leniently accepts the legacy
Locale.toString()
format as well as BCP 47 language tags.- Since:
- 4.3
- See Also:
Locale.forLanguageTag(String)
,Locale.toLanguageTag()
isLanguageTagCompliant
@Deprecated public boolean isLanguageTagCompliant()
Deprecated.as of 5.1 since it always returnstrue
nowReturn whether to use BCP 47 language tags instead of Java's legacy locale specification format.- Since:
- 4.3
preHandle
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException
Description copied from class:HandlerInterceptorAdapter
This implementation always returnstrue
.- Specified by:
preHandle
in interfaceHandlerInterceptor
- Overrides:
preHandle
in classHandlerInterceptorAdapter
- Parameters:
request
- current HTTP requestresponse
- current HTTP responsehandler
- chosen handler to execute, for type and/or instance evaluation- Returns:
true
if the execution chain should proceed with the next interceptor or the handler itself. Else, DispatcherServlet assumes that this interceptor has already dealt with the response itself.- Throws:
ServletException
parseLocaleValue
@Nullable protected Locale parseLocaleValue(String localeValue)
Parse the given locale value as coming from a request parameter.The default implementation calls
StringUtils.parseLocale(String)
, accepting theLocale.toString()
format as well as BCP 47 language tags.- Parameters:
localeValue
- the locale value to parse- Returns:
- the corresponding
Locale
instance - Since:
- 4.3