首先,建立一個(gè)描述message的XML文件,名為messages.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.ReloadableResourceBundleMessageSource"> <property name="basenames">
<list>
<value>org/rjstudio/spring/properties/messages</value>
</list>
</property>
</bean>
</beans>
這個(gè)Bean的id是定死的,只能為“messageSource”。這里的Class需要填入MessageSource接口的實(shí)現(xiàn)。其中,在我看的書中只提及了兩個(gè)類,一個(gè)是:ResourceBundleMessageSource,另一個(gè)則是ReloadableResourceBundleMessageSource。其中,后者提供了無需重啟就可重新加載新配置的特性。
list節(jié)點(diǎn)的value子節(jié)點(diǎn)中的body值“org/rjstudio/spring/properties/messages”,是指org.rjstudio.spring.proerties包下的以messages為主要名稱的properties文件。比如說,以Locale為zh_CN為例,Spring會(huì)自動(dòng)在類路徑中在org.rjstudio.spring.properties包下按照如下順序搜尋配置文件并進(jìn)行加載:
接下來,讓我們在org.rjstudio.spring.properties下,建立兩個(gè)messages的屬性文件。一個(gè)名為messages_zh_CN.properties,另一個(gè)為messages_en_US.properties,分別對應(yīng)國際化中的中國和美國。
在這兩個(gè)屬性文件中分別建立一個(gè)userinfo屬性。
中國為:userinfo=當(dāng)前登陸用戶[{0}] 登陸時(shí)間[{1}]
美國為:userinfo=current login user:[{0}] login time:[{1}]
好了,一切就緒,接下來可以寫段代碼來測試了。。建個(gè)類,寫個(gè)測試Main方法。
public class MessageTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("messages.xml");
Object[] arg = new Object[] { "Erica", Calendar.getInstance().getTime() };
String msg = ctx.getMessage("userinfo", arg,Locale.CHINA);
System.out.println("Message is ===> " + msg);
}
}
最后輸出的結(jié)果是:Message is ===> 當(dāng)前登錄用戶:[Erica] 登錄時(shí)間:[07-6-8 上午10:20]
ctx.getMessage("userinfo", arg,Locale.getDefault());這個(gè)方法,傳入的三個(gè)參數(shù),第一個(gè)是properties文件中對應(yīng)的名。arg為一個(gè)對象數(shù)組,我們在properties里面放置了兩個(gè)變量,[{0}]和[{1}],Spring會(huì)為我們給它們賦值。而最后則需要傳入一個(gè)Local。這里用 Locale.CHINA代表中國。如果我們用Locale.US,則輸出會(huì)變?yōu)椋?br>
Message is ===> current login user:[Erica] login time:[6/8/07 10:59 AM]
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。