spring中国际化,一般是将信息放在配置文件中
配置文件的格式如下:
<资源名>_<语言代码>_<国家/地区代码>.properties
方法1:
ResourceBundle
直接定位配置文件的位置
用法:
Java代码 复制代码 收藏代码
1.ResourceBoundle rb1 = ResourceBoundle.getBundle("com/youyu4/i18n/resource", Locale.US);
2.ResourceBoundle rb2 = ResourceBoundle.getBundle("com/youyu4/i18n/resource", Locale.CHINA);
方法2:
MessageSource(接口)
ResourceBundleMessageSource(实现类)
配置文件的位置定义在XML中,然后直接在ApplicationContext中取就好
用法:
Xml代码 复制代码 收藏代码
1.<bean id="myResource" class="org.springframework.context.support.ResourceBundleMessageSource">
2. <!--通过基名指定资源,相对于类根路径-->
3. <property name="basenames">
4. <list>
5. <value>com/youyu4/i18n/resource</value>
6. </list>
7. </property>
8.</bean>
Java代码 复制代码 收藏代码
1.String[] configs = {"com/youyu4/i18n/beans.xml"};
2.ApplicationContext ctx = new ClassPathXmlApplicationContext(configs);
3.
4.//获取MessageSource的Bean
5.MessageSource ms = (MessageSource)ctx.getBean("myResource");
6.Object[] params = {"John", new GregorianCalendar().getTime()};
7.
8.//获取格式化的国际化信息
9.String str1 = ms.getMessage("morning", params, Locale.US);
10.String str1 = ms.getMessage("afternoon", params, Locale.CHINA);
方法3:
MessageSource(接口)
ReloadableResourceBundleMessageSource(实现类)
这个跟方法2类似,但能够定期刷新资源
用法:
Xml代码 复制代码 收藏代码
1.<bean id="myResource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
2. <!--通过基名指定资源,相对于类根路径-->
3. <property name="basenames">
4. <list>
5. <value>com/youyu4/i18n/resource</value>
6. </list>
7. </property>
8. <!--刷新资源文件,以秒为单位-->
9. <property name="cacheSeconds" value="5"/>
10.</bean>
java代码一样
下面可以使用容器级的MessageSource配置:
只需要配置文件中,<bean id="messageSource"
java代码中就不用写,MessageSource ms = (MessageSource)ctx.getBean("myResource");
注意:
这时id一定为MessageSource,否则报NoSuchMessageException
获取【下载地址】 springmvc整合mybatis框架源码 bootstrap html5 mysql oracle