Class LocaleChangeInterceptor

java.lang.Object
org.springframework.web.servlet.i18n.LocaleChangeInterceptor
All Implemented Interfaces:
HandlerInterceptor

public class LocaleChangeInterceptor extends Object implements 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 Details

    • DEFAULT_PARAM_NAME

      public static final String DEFAULT_PARAM_NAME
      Default name of the locale specification parameter: "locale".
      See Also:
    • logger

      protected final Log logger
  • Constructor Details

    • LocaleChangeInterceptor

      public LocaleChangeInterceptor()
  • Method Details

    • 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
    • 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 interface HandlerInterceptor
      Parameters:
      request - current HTTP request
      response - current HTTP response
      handler - 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 the Locale.toString() format as well as BCP 47 language tags.

      Parameters:
      localeValue - the locale value to parse
      Returns:
      the corresponding Locale instance
      Since:
      4.3