javascript
Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本
首先,建立一個(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會自動在類路徑中在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會為我們給它們賦值。而最后則需要傳入一個(gè)Local。這里用 Locale.CHINA代表中國。如果我們用Locale.US,則輸出會變?yōu)?#xff1a;?
????
??? Message is ===> current login user:[Erica] login time:[6/8/07 10:59 AM]?
????
??? OK,到這里,就到這里。
轉(zhuǎn)載于:https://www.cnblogs.com/toSeeMyDream/p/4108651.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 子宫后壁下怀一般是生男孩几率多仍是女孩多
- 下一篇: 辅助的写与数据库交互的XML文件的类