类 LocaleChangeInterceptor
- java.lang.Object
- org.springframework.web.servlet.handler.HandlerInterceptorAdapter
- org.springframework.web.servlet.i18n.LocaleChangeInterceptor
- 所有已实现的接口:
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").- 从以下版本开始:
- 20.06.2003
- 作者:
- Juergen Hoeller, Rossen Stoyanchev
- 另请参阅:
LocaleResolver
字段概要
字段 修饰符和类型 字段 说明 static String
DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".protected Log
logger
构造器概要
构造器 构造器 说明 LocaleChangeInterceptor()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 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 returnstrue
.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.从类继承的方法 org.springframework.web.servlet.handler.HandlerInterceptorAdapter
afterCompletion, afterConcurrentHandlingStarted, postHandle
字段详细资料
DEFAULT_PARAM_NAME
public static final String DEFAULT_PARAM_NAME
Default name of the locale specification parameter: "locale".- 另请参阅:
- 常量字段值
构造器详细资料
LocaleChangeInterceptor
public LocaleChangeInterceptor()
方法详细资料
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.- 参数:
httpMethods
- the methods- 从以下版本开始:
- 4.2
getHttpMethods
public String[] getHttpMethods()
Return the configured HTTP methods.- 从以下版本开始:
- 4.2
setIgnoreInvalidLocale
public void setIgnoreInvalidLocale(boolean ignoreInvalidLocale)
Set whether to ignore an invalid value for the locale parameter.- 从以下版本开始:
- 4.2.2
isIgnoreInvalidLocale
public boolean isIgnoreInvalidLocale()
Return whether to ignore an invalid value for the locale parameter.- 从以下版本开始:
- 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
true
for BCP 47 compliance on JDK 7+ only.- 从以下版本开始:
- 4.3
- 另请参阅:
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.- 从以下版本开始:
- 4.3
preHandle
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException
从类复制的说明:HandlerInterceptorAdapter
This implementation always returnstrue
.- 指定者:
preHandle
在接口中HandlerInterceptor
- 覆盖:
preHandle
在类中HandlerInterceptorAdapter
- 参数:
request
- current HTTP requestresponse
- current HTTP responsehandler
- chosen handler to execute, for type and/or instance evaluation- 返回:
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.- 抛出:
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.- 参数:
locale
- the locale value to parse- 返回:
- the corresponding
Locale
instance - 从以下版本开始:
- 4.3