-默认情况下,springmvc会根据Accept-Language参数判断客户端的本地化类型
-当接收到请求时,springmvc会在上下文中查找一个本地化解析器(LocalResolver)
找到后使用它获取请求所对应的本地化类型信息
-springmvc还允许装配一个动态更改本地化类型的拦截器,通过指定一个请求参数就
可以控制单个请求的本地化类型
AcceptHeaderLocaleResolver:根据HTTP请求头的Accept-Language参数确定本地化类型,
如果没有显示定义本地化解析器,springmvc使用该解析器
CookieLocaleResolver:根据指定的Cookie值确定本地化类型
SessionLocaleResolver:根据Session中特定属性确定本地化类型
LocaleChangeInterceptor:从请求参数中获取本次请求对应的本地化类型
package com.hous.crud.controller;
import java.util.Locale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class I18nController {
@Autowired
private ResourceBundleMessageSource messageSource;
@RequestMapping("/i18n")
public String testI18n(Locale locale) {
String value = messageSource.getMessage("i18n.user", null, locale);
System.out.println("国际化:" + value);
return "i18n";
}
}
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <!-- 自动扫描bean --> <context:component-scan base-package="com.hous.crud"></context:component-scan> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 解决静态资源路径问题 --> <mvc:default-servlet-handler/> <mvc:annotation-driven conversion-service="conversionService"/> <!-- 将自定义的转换器注册到springmvc上下文中 org.springframework.context.support.ConversionServiceFactoryBean org.springframework.format.support.FormattingConversionServiceFactoryBean --> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="employeeConverter"/> </set> </property> </bean> <!-- 配置国际化 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="i18n"></property> </bean> <!-- 配置SessionLocaleResolver --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean> <!-- 配置LocaleChangeInterceptor --> <mvc:interceptors> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/> </mvc:interceptors> <!-- <mvc:view-controller path="/i18n"/> --> <mvc:view-controller path="/i18n2"/> </beans>
参考:http://www.cnblogs.com/liukemng/p/3750117.html