Package org.springframework.web.servlet.i18n

# 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:
  - `LocaleResolver`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`DEFAULT_PARAM_NAME`
Default name of the locale specification parameter: "locale".
`protected final org.apache.commons.logging.Log`
`logger`

## Constructor Summary

Constructors
Constructor
Description
`LocaleChangeInterceptor()`

## Method Summary

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.
`protected Locale`
`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... 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

public static final String DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".

See Also:
  - Constant Field Values

### logger

protected final org.apache.commons.logging.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