一. 国际化概述
国际化并不是对内容进行国际化,而是对本身要显示的文字进行国际化,需要在SpringIOC容器中配置国际化资源文件的bean,国际化是具体通过Locale完成。SpringMVC为国际化提供了本地化拦截器和本地化解析器,以便完成通过超链接切换方式完成国际化。
- 本地化解析器:SessionLocaleResovler
- 本地化拦截器LocaleChangeInterceptor
二. 通过切换超链接进行国际化
- 配置国际化资源文件
username=username
password=password
- 配置国际化资源文件的bean
<!-- 配置国际化资源文件的bean -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="i18n"></property>
</bean>
- 配置本地化拦截器和本地化解析器
<!-- 配置本地化解析器 -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
</bean>
<!-- 本地化拦截器 -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
</mvc:interceptors>
- 编写前端请求界面
<a href="${pageContext.request.contextPath}/testLocale?locale=zh_CN">中文</a>
<br>
<a href="${pageContext.request.contextPath}/testLocale?locale=en_US">English</a>
- 编写请求处理器、
@Controller
public class LocaleController {
@RequestMapping("/testLocale")
public String testLocale() {
return "success";
}
}
- 编写success.jsp页面
<fmt:message key="username"></fmt:message>
<br>
<fmt:message key="password"></fmt:message>
小结
掌握通过切换超链接完成国际化操作:
- 在之前的国际化基础上配置SessionLocaleResolver的bean
- 配置 Interceptor:LocaleChangeInterceptor
- 需要添加请求参数,参数名称为locale,值为本地化语言,比如zh_CN,表示简体中文,en_US,表示美式英文