Spring MVC国际化配置
Spring MVC国际化配置
前言
项目开发中要考虑支持国际化,框架选用的是Spring MVC框架,那么问题来了Spring MVC如何配置并实现国际化。
实现过程(Maven项目)
对于Spring MVC的国际化这里我是基于session来实现的,具体实现过程如下:
1、首先我们需要在XML配置文件中进行如下配置:
这里核心的配置是配置资源文件路径"language.messages".
2. 基于session或cookies的要进行拦截配置,具体实现过程如下:
mvc:interceptors
</mvc:interceptors>
3、编写Controller代码用于切换语言。
@RequestMapping("/language")
@ResponseBody
public String lang(HttpServletRequest request){
String langType = request.getParameter("languageType");
if(langType.equals("zh")){
Locale locale = new Locale("zh", "CN");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
}
else if(langType.equals("en")){
Locale locale = new Locale("en", "US");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
}
else
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,LocaleContextHolder.getLocale());
return null;
}
能够知道的是,通过前端传递的语言类型,设置相应的语言环境Locale,之后Spring MVC内部根据Locale动态的选择去加载指定语言的.porperties文件,前端通过特定的表达式进行调用显示。
3.准备语言文件,这里举例中文、English: messages_en.properties 和 messages_zh.properties
里面的内容已键值对的形式存储了前端界面需要的信息(各种语言),简单的看下英文文件里面的内容。
ms.sysName=Manager System
ms.copyRight=CopyRight@2019 MrZhangxd
ms.languageEN=English
ms.languageZH=Chinese
4.前端界面调用
项目使用的是Velocity模板引擎构建页面,在.vm文件中的调用方式为如下形式:

浙公网安备 33010602011771号