Spring Resource bundle with ResourceBundleMessageSource example
来源:互联网 发布:淘宝自动软件是真的吗 编辑:程序博客网 时间:2024/06/06 21:48
In Spring, you can use ResourceBundleMessageSource
to resolve text messages from properties file, base on the selected locales. See following example :
- Directory Structure
Review directory structure of this example.
2. Properties file
Create two properties files, one for English characters (messages_en_US.properties
), other one for Chinese characters (messages_zh_CN.properties
). Put it into the project class path (see figure above).
File : messages_en_US.properties
customer.name=Yong Mook Kim, age : {0}, URL : {1}
File : messages_zh_CN.properties
customer.name=\ufeff\u6768\u6728\u91d1, age : {0}, URL : {1}
The ‘\ufeff\u6768\u6728\u91d1
‘ is Unicode characters in Chinese.
Note
To display the Chinese characters correctly, you have to use “native2ascii
” tool to convert the Chinese characters into Unicode characters.
3. Bean configuration file
Include the properties file into the bean configuration file. Both “messages_en_US.properties
” and “messages_zh_CN.properties
” are consider one file in Spring, you just need to include the file name once, and Spring will find the correct locale automatically.
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename"> <value>locale\customer\messages</value> </property> </bean></beans>
P.S Assume both files are located at “
resources\locale\customer\
” folder.
4. Run it
package com.mkyong.common;import java.util.Locale;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("locale.xml"); String name = context.getMessage("customer.name", new Object[] { 28,"http://www.mkyong.com" }, Locale.US); System.out.println("Customer name (English) : " + name); String namechinese = context.getMessage("customer.name", new Object[] {28, "http://www.mkyong.com" }, Locale.SIMPLIFIED_CHINESE); System.out.println("Customer name (Chinese) : " + namechinese); }}
Output
Note
Make sure your Eclipse is able to display Chinese output.
Explanation
- In
context.getMessage()
, the second argument is message parameters, you have to pass it as object array. You can just pass anull
if no parameter values available.
context.getMessage("customer.name",null, Locale.US);
- The
Locale.US
will retrieve the messages from ‘messages_en_US.properties
‘, whileLocale.SIMPLIFIED_CHINESE
will retrieve the messages from ‘messages_zh_CN.properties
‘.
- Spring Resource bundle with ResourceBundleMessageSource example
- [转]Spring Resource loader with GetResource() example
- Spring JTA multiple resource transactions in Tomcat with Atomikos example
- Spring JTA multiple resource transactions in Tomcat with Atomikos example
- Struts 2 – Resource bundle example
- spring中的ResourceBundleMessageSource复习
- spring中的ResourceBundleMessageSource复习
- spring中的ResourceBundleMessageSource复习
- Spring 中ResourceBundleMessageSource的使用
- @Resource example
- Spring3MVC:Themes in Spring-Tutorial with Example
- Spring MVC with ParameterizableViewController Tutorial and Example
- Spring with Hibernate persistence and transactions example
- Using resource bundle for validation messages in Spring
- Spring resource bundle多语言,单引号format异常
- spring中ResourceBundleMessageSource的配置使用方法
- spring中MessageSource的配置使用方法--ResourceBundleMessageSource
- Spring Injection with @Resource, @Autowired and @Inject
- MVP架构模式以winform为例
- ubuntu matlab快捷方式创建
- 关于jdbc重点讲解实例--使用jdbc操作数据库上传附件
- 10----时间格式的转换
- JavaBean的get、set方法引发的讨论
- Spring Resource bundle with ResourceBundleMessageSource example
- 指针
- pdf转换成html格式怎么转
- jquery mobile常用的data-role类型 data-icon data-iconpos
- HBase Java API类介绍
- c++时间类型
- linux shell软链接的问题
- poj 1185 炮兵阵地 状态压缩dp
- dom4j读写xml文件方法和具体实现代码(提供jar包下载)