一,關於spring國際化的簡介
在java編程中,對於信息的處理一般有兩種方式:
(1)將信息存在數據庫裡,用的時候從數據庫裡取。(慣用手法數據字典就是)
(2)將信息存放在java常量類中,通過java類調用屬性值。
這兩種方式對於處理不需要國際化的網站,系統是能實現的,但是,如果需要國際化,
這兩種方式就實現國際化非常困難。
而spring對於國際的實現提供了良好的支持,Application通過繼承
org.springframework.context.MessageResource接口,通過getMessage()方法獲取信息資源,
從而實現國際化的目的。
二,getMessage()三種形式
(1)getMessage(java.lang.String arg0, java.lang.Object[] arg1, java.lang.String arg2, java.util.Locale arg3);
這個是獲取信息的基本方法,如果找不到指定信息,也就是java.lang.Object[] arg1傳入後沒有找到,
就用java.lang.String arg2這個信息作為默認信息。
(2)getMessage(java.lang.String arg0, java.lang.Object[] arg1, java.util.Locale arg2) throws org.springframework.context.NoSuchMessageException;
跟上一個方法同的是沒有指定默認值,如果根據傳入參數找不到指定信息,就會拋異常NoSuchMessageException。
(3)getMessage(org.springframework.context.MessageSourceResolvable arg0, java.util.Locale arg1) throws org.springframework.context.NoSuchMessageException;
通過MessageSourceResolvable獲取傳入信息的信號,傳入參數跟上面兩個方法類型不一樣,一般不常用。
三,spring關於國際化的實現思路
當ApplicationContext被加載的時候,會自動從spring配置文件XML中去查找id為messageSource的bean。
spring約定國際化支持的bean為messageSource,通過org.springframework.context.support.ResourceBundleMessageSource
綁定國際化信息的資源文件,獲取國際化信息。
四,簡單體驗下spring國際化,讓後再根據實例分析國際化的實現思想
用輸出中文做測試
我的項目結構:
messages_en_CN.properties文件內容:
HelloWorld=問候:{0},問候