Class LocaleChangeInterceptor
java.lang.Object
org.springframework.web.servlet.i18n.LocaleChangeInterceptor
- All Implemented Interfaces:
HandlerInterceptor
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:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Default name of the locale specification parameter: "locale".protected final org.apache.commons.logging.Log
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturn the configured HTTP methods.Return the name of the parameter that contains a locale specification in a locale change request.boolean
Return whether to ignore an invalid value for the locale parameter.parseLocaleValue
(String localeValue) Parse the given locale value as coming from a request parameter.boolean
preHandle
(HttpServletRequest request, HttpServletResponse response, Object handler) Interception point before the execution of a handler.void
setHttpMethods
(String @Nullable ... 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
setParamName
(String paramName) Set the name of the parameter that contains a locale specification in a locale change request.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.web.servlet.HandlerInterceptor
afterCompletion, postHandle
-
Field Details
-
DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".- See Also:
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
LocaleChangeInterceptor
public LocaleChangeInterceptor()
-
-
Method Details
-
setParamName
Set the name of the parameter that contains a locale specification in a locale change request. Default is "locale". -
getParamName
Return the name of the parameter that contains a locale specification in a locale change request. -
setHttpMethods
Configure the HTTP method(s) over which the locale can be changed.- Parameters:
httpMethods
- the methods- Since:
- 4.2
-
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
-
preHandle
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException Description copied from interface:HandlerInterceptor
Interception point before the execution of a handler. Called after HandlerMapping determined an appropriate handler object, but before HandlerAdapter invokes the handler.DispatcherServlet processes a handler in an execution chain, consisting of any number of interceptors, with the handler itself at the end. With this method, each interceptor can decide to abort the execution chain, typically sending an HTTP error or writing a custom response.
Note: special considerations apply for asynchronous request processing. For more details see
AsyncHandlerInterceptor
.The default implementation returns
true
.- Specified by:
preHandle
in interfaceHandlerInterceptor
- 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
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
-