AcceptHeaderLocaleResolver是默认的,也是最容易使用的语言区域解析器.使用他,SpringMVC会读取浏览器的accept-language标题,来确定使用哪个语言区域.AcceptHeaderLocaleResolver可以不同显式配置,也可以显式配置.
示例基于浏览器请求的国际化实现:
1.添加配置
<!-- messageSource国际化 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames" value="message" /> <property name="defaultEncoding" value="UTF-8" /> </bean> <!-- 国际化操作拦截器如果采用(Session或Cookie)则必须配置 --> <mvc:interceptors> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> </mvc:interceptors> <!-- AcceptHeaderLocaleResolver配置 因为AcceptHeaderLocaleResolver是默认语言区域解析器,不配置也可以 --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver" />
2.建立语言文件:message_zh_CN.properties
title=我是标题
3.控制器
public class I18nController { @RequestMapping("/i18n") public String Form() { return "i18n"; } }
4.视图
<!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" > <head> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <meta content="text/html;charset=UTF-8"/> <title>i18n</title> </head> <body> <h2><spring:message code="title" /></h2> </body> </html>