编者: wRitchie(吴理琪) 来源:http://www.bj9420.com
基于项目的需要,现有的 Spring+SpringMVC+Mybatis 后台框架系
统,需要提供中、英版本,因而在实践中形成此文。
第一步:在 Spring核心配置文件中配置:
classpath:i18n/messageclasspath:i18n/user
第二步:创建国际化文件
1、在项目的 resource 目录下,创建 i18n 目录
2、在 i18n 目录下新建 Resource Bundle,如下图:
3、在 Create Resource Bundle 中输入使用的配置文件名,如图
4、点击 OK,即自动生成相应该语言的属性文件(也可以直接手动
新建属性文件)message_en_US.properties、
message_zh_CN.properties,如图
5、.properties 文件格式,KeyValue键值对,采用模块(对象).字段(属性)的方式
object.field=中文值
或
object.field=En value
第三步:Controller 类中定义语言切换方法
@Slf4j@Controller@RequestMapping("i18nController")public class I18nController { @RequestMapping("/locale") public ModelAndView locale(@RequestParam("local") String locale, HttpSes sion session) { ModelAndView mv = new ModelAndView("/index.jsp"); if ("zh".equals(locale)) { Locale locale1 = new Locale("zh","CN"); session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIB UTE_NAME,locale1); }else { Locale locale1 = new Locale("en","US"); session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIB UTE_NAME,locale1); } return mv;} }
@Slf4j@Controller@RequestMapping("i18nController")public class I18nController {@RequestMapping("/locale") public ModelAndView locale(@RequestParam("local") String locale, HttpSession session) { ModelAndView mv = new ModelAndView("/index.jsp"); if ("zh".equals(locale)) { Locale locale1 = new Locale("zh","CN"); session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale1); }else { Locale locale1 = new Locale("en","US"); session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale1); } return mv; }}
第四步:前端页面
'>中文 |'>English
效果图:
附:
一、Java 控制类中的国际化:
RequestContext requestContext = new RequestContext(request);String webTitle= requestContext.getMessage("com.bj9420.web.title");
二、Java 常量类中的国际化(若没想到的话,挺费劲的,典型的难
者不会,会者不难)
public class SystemConstant { public static String PLATFORM_TITLE = "com.bj9420.web.title"; public static final Map getSysTypeMap(){ Map map = new TreeMap<>(); map.put("05", "com.bj9420.constant.org.systype.store");//门店 map.put("01", "com.bj9420.constant.org.systype.supplier");//供应商 return map; }}
三、JSP页面中的国际化:
至止,基本能解决 SSM 项目中的国际化问题。