SpringMVC的国际化也是挻好用的,主要通过下面2个步骤实现基本的功能。
一、先在XML文件中配置上如下一段:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="net.kuhyygy.web.i18n.resource.Messages" />
</bean>
说明:
1、上面的“value”里是找项目里src目录的路径。Messages是路径“net.kuhyygy.web.i18n.resource”下的各文件的开头字符,如下图所示
2、Messages后面必须加上相应的地区标识符,格式必须如上图所示。
3、如果上图的properties文件放到classpath根目录下,最初那段XML的配置写成下面那样即可,spring会自动寻找对应的文件。
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="Messages" />
</bean>
注:很多生产系统都需要长时间持续运行,系统重启会给运行带来很大的负面影响。这时,通过该实现类就可以解决国际化信息更新的问题。
<bean id=" messageSource " class="org.springframework.context.support. ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value> net.kuhyygy.web.i18n.resource.Messages</value>
</list>
</property>
<!--① 刷新资源文件的周期,以秒为单位-->
<property name="cacheSeconds" value="5"/>
</bean>
二、调用
先注入MesssageSource,
@Autowired
private MessageSource msg;
String s = msg.getMessage("SystemError", new Object[]{}, Locale.US);
String s2 = msg.getMessage("SystemError", new Object[]{}, Locale.CHINA); 即可。