本文主要介绍Spring Boot如何配置国际化资源,以及如何在页面、Java代码引用国际化资源。
一、配置国际化资源
-
在resource目录下建立目录i18n/messages用于存放国际化资源文件,在messages目录下新建三个文件:messages_en_US.properties、messages_zh_CN.properties、messages.properties。
-
上面的messages.properties为默认的国际化资源文件,可以在springboot的配置类MessageSourceAutoConfiguration源码中得以证明。
注意:默认的国际化资源只有在未配置其他国际化资源或配置的其他国际化资源中未找到匹配条目时才会生效。
-
在Spring boot的配置文件application.properties中添加配置项:
spring.messages.basename=i18n/messages/messages
注意:最后一个messages一定不能少,最后一个messages表明国际化文件的前缀,如果没有配置则会报错,报错信息类似javax.servlet.jsp.JspTagException: No message found under code 'hello.world' for locale 'zh_CN'
END
二、引用国际化资源
-
在前台引用国际化资源比较简单,比如前台JSP页面,首先在页面上引入springframwork标签库<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>,并在对应的国际化文件中写上message 键对应的值。
-
需要的使用国际化资源的地方加上如下语句即可,进入到JSP页面时系统便会根据国际化文件去查找对应的消息值。
-
在Java代码中引用国际化文件,首先注入MessageSource,然后通过LocaleContextHolder.getLocale()来获取当前Locale,最后通messageSource.getMessage("hello.world", null,locale)来去对应的国际化资源文件中取消息。
-