这次介绍有关资源相关的接口:org.springframework.context.MessageResource.而类org.springframework.context.ApplicationContext实现了该接口.,您可以通过getMessage()的方法来取得资源文件,从而实现国际化消息。
通过一个例子来说明。
导入Spring所需的包:commons-logging.jar,spring.jar 。(日志包和Spring包)
包下载地址:
http://www.ziddu.com/download/3555993/Spring.rar.html
(1)创建resource-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>duck</value> <!-- 资源文件名前缀 -->
</property>
</bean>
</beans>
(2)创建资源文件duck_en_US.properties,duck_zh_CN.properties两个文件
duck_en_US.properties内容为:
ducklyl=User {0} login at {1}
duck_zh_CN.properties内容(经过JDK工具native2ascii)编码转换为:
ducklyl=\u7528\u6237 {0} \u4e8e {1} \u767b\u9646
(3)创建测试类
package com.resource;
import java.util.*;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class SpringTest {
public static void main(String[] args)
{
//读取配置文件
ApplicationContext context=new FileSystemXmlApplicationContext("src/com/resource/resource-config.xml");
//传入两个参数,替换资源文件{0},{1}
String[] para=new String[]{"王生生",Calendar.getInstance().getTime().toString()};
System.out.println(context.getMessage("ducklyl", para,Locale.US));
System.out.println(context.getMessage("ducklyl", para,Locale.CHINA));
}
}
如果以上配置正确,运行结果为:
User 王生生 login at Thu Oct 25 19:15:59 CST 2007
用户 王生生 于 Thu Oct 25 19:15:59 CST 2007 登陆