這次介紹有關資源相關的接口: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 登陸