JSP Spring ApplicationContext的國際化支持
1.ApplicationContext接口繼承了MessageResource接口,因此使用ApplicationContext作為spring容器可以使用國際化資源文件。
2.在MessageResource接口中定義了兩個主要用于國際化的方法:
String getMessage(String param,Object[] args,Locale loc) ;String getMessage(String param,Object[] args,String default,Locale loc) ;
ApplicationContext就是通過這兩個方法來完成國際化的
3.國際化支持原理:當程序創建ApplicationContext時,Spring會自動查找配置文件中名為messageSource的Bean實例,如果找到這個實例,上面兩個國際化方法的調用將會交給該Bean實例實現類;如果沒有找到,將會沿著父類一直往上找;如果最終還是沒找到,系統將會創建一個空的StaticMessageSource Bean,該Bean能接受上述兩個方法的調用,但是是空實現。
4.通常在Spring中使用ResourceBundleMessageSource類來配置messageSource Bean。配置該Bean時需要提供一個參數basenames指定所使用的國際化資源文件的基本名,該參數值為list類型,因此需要使用元素來提供參數值
<bean name="messageSource" class="`org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>message</value> </list> </property></bean><!--提供資源文件-->//message_zh_CN.propertieswelcome={0} . 歡迎光臨!現在是北京時間:{1}//message_en_US.propertieswelcome={0} , welcome! now is:{1}<!--在main程序中的調用-->String name = act.getMessage("welcome",new String[]{"成兮”,new Date()},Locale.getDefault(Locale.Category.FORMAT)) ;
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答