javascript
Spring 国际化例子
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <?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” -->
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <bean id="messageSource" ? class="org.springframework.context.support.ReloadableResourceBundleMessageSource">?
<!-- 參數cacheSeconds就是定義每5秒鐘自動刷新一次資源文件,在真實的應用中,刷新周期不能太短,否則頻繁的刷新將帶來性能上的負面影響,一般不建議小于30分鐘,cacheSeconds默認值為-1表示永不刷新?-->
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <property name="cacheSeconds" value="-1"/>
<property name="basenames">
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <list>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<!-- ?list節點的value子節點中的body值是指/WEB-INF/languages/test/messages包下的以messages為主要名稱的properties文件。Spring會自動在/WEB-INF/languages/test/messages包下搜尋配置文件并進行加載?-->
<value>/WEB-INF/languages/test/messages</value>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </list>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </property>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </bean>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </beans>
在/WEB-INF/languages/test/messages下,建立兩個messages的屬性文件。一個名為messages_zh_CN.properties,另一個為messages_en_US.properties,分別對應國際化中的中國和美國。
在這兩個屬性文件中分別建立一個userinfo屬性。
? ? ? ? ? ? ? ? ? ?中國為:userinfo=當前登陸用戶[{0}] 登陸時間[{1}]
? ? ? ? ? ? ? ? ? ?美國為:userinfo=current login user:[{0}]?login time:[{1}]
接下來可以寫段代碼測試。建個類,寫個測試Main方法。
?public class MessageTest {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? public static void main(String[] args) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ApplicationContext ctx = new?ClassPathXmlApplicationContext("spring.xml");
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Object[] arg = new Object[] { "張三",??Calendar.getInstance().getTime() };
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String msg =??ctx.getMessage("userinfo", arg,Locale.CHINA);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.println("Message is ===> "??+ msg);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
?最后輸出的結果是:Message is ===> 當前登錄用戶:[張三]?? ?登錄時間:[14-3-23 上午12:10]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?ctx.getMessage("userinfo",?? arg,Locale.getDefault());這個方法,傳入的三個參數,第一個是properties文件中對應的名。arg為一個對象數組,我們在properties里面放置了兩個變量,[{0}]和[{1}],Spring會為我們給它們賦值。而最后則需要傳入一個Local。這里用Locale.CHINA代表中國。
如果我們用Locale.US,則輸出會變為:?Message is ===> current login user:[Erica] ?login time:[3/23/14 12:10 AM]
總結
以上是生活随笔為你收集整理的Spring 国际化例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行业务常用基本概念
- 下一篇: Spring MVC_HandlerIn