public class LocaleChangeInterceptor extends HandlerInterceptorAdapter
LocaleResolver
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".
|
private java.lang.String[] |
httpMethods |
private boolean |
ignoreInvalidLocale |
protected Log |
logger |
private java.lang.String |
paramName |
Constructor and Description |
---|
LocaleChangeInterceptor() |
Modifier and Type | Method and Description |
---|---|
private boolean |
checkHttpMethod(java.lang.String currentMethod) |
java.lang.String[] |
getHttpMethods()
Return the configured HTTP methods.
|
java.lang.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()
Deprecated.
as of 5.1 since it always returns
true now |
protected java.util.Locale |
parseLocaleValue(java.lang.String localeValue)
Parse the given locale value as coming from a request parameter.
|
boolean |
preHandle(HttpServletRequest request,
HttpServletResponse response,
java.lang.Object handler)
This implementation always returns
true . |
void |
setHttpMethods(java.lang.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)
Deprecated.
as of 5.1 since it only accepts
true now |
void |
setParamName(java.lang.String paramName)
Set the name of the parameter that contains a locale specification
in a locale change request.
|
afterCompletion, afterConcurrentHandlingStarted, postHandle
public static final java.lang.String DEFAULT_PARAM_NAME
protected final Log logger
private java.lang.String paramName
@Nullable private java.lang.String[] httpMethods
private boolean ignoreInvalidLocale
public void setParamName(java.lang.String paramName)
public java.lang.String getParamName()
public void setHttpMethods(@Nullable java.lang.String... httpMethods)
httpMethods
- the methods@Nullable public java.lang.String[] getHttpMethods()
public void setIgnoreInvalidLocale(boolean ignoreInvalidLocale)
public boolean isIgnoreInvalidLocale()
@Deprecated public void setLanguageTagCompliant(boolean languageTagCompliant)
true
nowNOTE: As of 5.1, this resolver leniently accepts the legacy
Locale.toString()
format as well as BCP 47 language tags.
Locale.forLanguageTag(String)
,
Locale.toLanguageTag()
@Deprecated public boolean isLanguageTagCompliant()
true
nowpublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, java.lang.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
private boolean checkHttpMethod(java.lang.String currentMethod)
@Nullable protected java.util.Locale parseLocaleValue(java.lang.String localeValue)
The default implementation calls StringUtils.parseLocale(String)
,
accepting the Locale.toString()
format as well as BCP 47 language tags.
localeValue
- the locale value to parseLocale
instance