Spring MVC 本地化解析器
默认情况下,Spring MVC 会根据客户端的请求头的 Accept-Language 参数判断客户段的本地化类型,此外 Spring MVC 还提供了多种指定客户端本地化类型的方式,如通过 Cookie、Session 、请求URL参数等;
Spring MVC 本地化解析器和拦截器都定义在 org.springframework.web.servlet.i18n 包中,可以在 DispatcherServlet 上文中配置他们;
Spring 提供了以下4个本地化解析器:
- AcceptHeaderLocaleResolver:根据 HTTP 报文头的 Accept-Language 参数确定本地化类型,为默认本地化解析器;
- CookieLocaleResolver:根据指定的 Cookie 值确定本地化类型;
- SessionLocaleResolver:根据指定的 Session 值确定本地化类型;
- LocaleChangeInterceptor:从请求中获取本次请求对应的本地化类型;
以上4个解析器中,在默认没有配置本地化解析器的情况下,Spring 会自动注册一个
AcceptHeaderLocaleResolver 解析器;
CookieLocaleResolver
使用Cookie保存本地化信息,只需要在 spring-mvc 配置文件中配置一个 CookieLocaleResolver 即可,DispatcheServlet 会自动识别本地化解析器并装配它: