public class LocaleChangeInterceptor extends HandlerInterceptorAdapter
LocaleResolver
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".
|
protected Log |
logger |
Constructor and Description |
---|
LocaleChangeInterceptor() |
Modifier and Type | Method and 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()
Return whether to use BCP 47 language tags instead of Java's legacy
locale specification format.
|
protected Locale |
parseLocaleValue(String locale)
Parse the given locale value as coming from a request parameter.
|
boolean |
preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler)
This implementation always returns
true . |
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)
Specify whether to parse request parameter values as BCP 47 language tags
instead of Java's legacy locale specification format.
|
void |
setParamName(String paramName)
Set the name of the parameter that contains a locale specification
in a locale change request.
|
afterCompletion, afterConcurrentHandlingStarted, postHandle
public static final String DEFAULT_PARAM_NAME
protected final Log logger
public void setParamName(String paramName)
public String getParamName()
public void setHttpMethods(String... httpMethods)
httpMethods
- the methodspublic String[] getHttpMethods()
public void setIgnoreInvalidLocale(boolean ignoreInvalidLocale)
public boolean isIgnoreInvalidLocale()
public void setLanguageTagCompliant(boolean languageTagCompliant)
false
.
Note: This mode requires JDK 7 or higher. Set this flag to true
for BCP 47 compliance on JDK 7+ only.
Locale.forLanguageTag(String)
,
Locale.toLanguageTag()
public boolean isLanguageTagCompliant()
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException
HandlerInterceptorAdapter
true
.preHandle
in interface HandlerInterceptor
preHandle
in class HandlerInterceptorAdapter
request
- current HTTP requestresponse
- current HTTP responsehandler
- chosen handler to execute, for type and/or instance evaluationtrue
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.ServletException
@UsesJava7 protected Locale parseLocaleValue(String locale)
The default implementation calls StringUtils.parseLocaleString(String)
or JDK 7's Locale.forLanguageTag(String)
, depending on the
"languageTagCompliant"
configuration property.
locale
- the locale value to parseLocale
instance