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 StringDEFAULT_PARAM_NAMEDefault name of the locale specification parameter: "locale".protected Loglogger
Constructor Summary
Constructors Constructor Description LocaleChangeInterceptor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String[]getHttpMethods()Return the configured HTTP methods.StringgetParamName()Return the name of the parameter that contains a locale specification in a locale change request.booleanisIgnoreInvalidLocale()Return whether to ignore an invalid value for the locale parameter.booleanisLanguageTagCompliant()Return whether to use BCP 47 language tags instead of Java's legacy locale specification format.protected LocaleparseLocaleValue(String locale)Parse the given locale value as coming from a request parameter.booleanpreHandle(HttpServletRequest request, HttpServletResponse response, Object handler)This implementation always returnstrue.voidsetHttpMethods(String... httpMethods)Configure the HTTP method(s) over which the locale can be changed.voidsetIgnoreInvalidLocale(boolean ignoreInvalidLocale)Set whether to ignore an invalid value for the locale parameter.voidsetLanguageTagCompliant(boolean languageTagCompliant)Specify whether to parse request parameter values as BCP 47 language tags instead of Java's legacy locale specification format.voidsetParamName(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(String... httpMethods)
Configure the HTTP method(s) over which the locale can be changed.- Parameters:
httpMethods- the methods- Since:
- 4.2
getHttpMethods
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
public void setLanguageTagCompliant(boolean languageTagCompliant)
Specify whether to parse request parameter values as BCP 47 language tags instead of Java's legacy locale specification format. The default isfalse.Note: This mode requires JDK 7 or higher. Set this flag to
truefor BCP 47 compliance on JDK 7+ only.- Since:
- 4.3
- See Also:
Locale.forLanguageTag(String),Locale.toLanguageTag()
isLanguageTagCompliant
public boolean isLanguageTagCompliant()
Return 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:HandlerInterceptorAdapterThis implementation always returnstrue.- Specified by:
preHandlein interfaceHandlerInterceptor- Overrides:
preHandlein classHandlerInterceptorAdapter- Parameters:
request- current HTTP requestresponse- current HTTP responsehandler- chosen handler to execute, for type and/or instance evaluation- Returns:
trueif 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
@UsesJava7 protected Locale parseLocaleValue(String locale)
Parse the given locale value as coming from a request parameter.The default implementation calls
StringUtils.parseLocaleString(String)or JDK 7'sLocale.forLanguageTag(String), depending on the"languageTagCompliant"configuration property.- Parameters:
locale- the locale value to parse- Returns:
- the corresponding
Localeinstance - Since:
- 4.3