首先,建立一个描述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>
这个Bean的id是定死的,只能为“messageSource”。这里的Class需要填入MessageSource接口的实现。其中,在我看的书中只提及了两个类,一个是:ResourceBundleMessageSource,另一个则是ReloadableResourceBundleMessageSource。其中,后者提供了无需重启就可重新加载新配置的特性。
list节点的value子节点中的body值“org/rjstudio/spring/properties/messages”,是指org.rjstudio.spring.proerties包下的以messages为主要名称的properties文件。比如说,以Locale为zh_CN为例,Spring会自动在类路径中在org.rjstudio.spring.properties包下按照如下顺序搜寻配置文件并进行加载:
接下来,让我们在org.rjstudio.spring.properties下,建立两个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("messages.xml");
Object[] arg = new Object[] { "Erica", Calendar.getInstance().getTime() };
String msg = ctx.getMessage("userinfo", arg,Locale.CHINA);
System.out.println("Message is ===> " + msg);
}
}
最后输出的结果是:Message is ===> 当前登录用户:[Erica] 登录时间:[07-6-8 上午10:20]
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:[6/8/07 10:59 AM]
- 浏览: 24895 次
相关推荐
在Spring框架中,实现国际化(Internationalization,简称i18n)是常见的需求,它使得应用程序可以根据用户所在的地区提供不同的语言版本。以下是一个详细的步骤,解释如何在Spring应用中实现国际化。 1. **理解...
本案例将深入探讨如何在Spring应用中实现国际化。 首先,我们需要了解i18n的基本概念。"i18n"这个术语来源于英文单词"internationalization",由于单词中有18个字母,因此得名。国际化的核心是将应用中的文本、日期...
在Spring框架中,ApplicationContext是IoC容器的核心,它不仅负责管理Bean,还提供了实现国际化(i18n)的功能。国际化使应用程序能够适应不同语言和地区的用户,无需修改代码即可提供多语言支持。Spring通过实现...
本主题将深入探讨“简单Spring容器实现”,基于提供的标签“源码”和“工具”,我们将聚焦于Spring容器的原理及其简易实现。下面,我们先来理解Spring容器的核心概念,然后逐步探索其内部机制,并通过一个名为...
标题 "struts2 spring3 mybatis3整合简单例子" 涉及到的是Java Web开发中的三大主流框架——Struts2、Spring3和MyBatis3的整合应用。这是一个常见的企业级开发组合,用于构建高效、灵活的后端服务。 Struts2是一个...
**Spring MVC、Hessian与Maven简单实例** 在IT行业中,Spring MVC、Hessian和Maven是三个重要的技术组件,它们分别在Web开发、远程服务调用和项目构建管理方面发挥着关键作用。本篇文章将深入探讨这些技术,并提供...
BeanFactory是最基础的容器,而ApplicationContext提供了更多的企业级服务,如国际化、事件传播等。在实际开发中,我们通常使用ApplicationContext。 2. **配置Spring容器** 在Spring中,配置文件通常是XML格式,...
此外,还会涉及到异常处理、国际化、安全控制等多个方面。 总结来说,SpringMVCDemo是一个全面的实战教程,涵盖了Java Web开发中三个重要框架的集成应用。通过深入研究这个实例,开发者不仅可以掌握Spring MVC的...
在这个"SpringMVC入门很简单之国际化"的主题中,我们将深入探讨如何在SpringMVC应用中实现国际化,以满足不同地区用户的需求。 首先,实现国际化需要使用SpringMVC中的`MessageSource`接口。`MessageSource`允许...
在Spring Boot框架中,实现国际化是一项常见的需求,它允许应用程序为不同的地区和语言提供本地化的显示内容。本案例将深入探讨如何在Spring Boot项目中设置和使用国际化功能,以提高用户体验。 首先,我们需要理解...
在实际项目中,还会涉及到异常处理、安全性配置、国际化支持等更多细节。这个实例提供了基础的整合过程,帮助开发者理解如何将这些组件结合在一起,实现一个简单的功能。通过不断实践和学习,开发者可以逐步掌握更...
在本项目中,"springboot+beetl 实现国际化多语言切换.zip" 提供了一个使用Spring Boot和Beetl模板引擎实现Web应用国际化的实例。这个压缩包包含了一个名为"springboot-beetl-i18n"的子目录,里面应该有相应的源码和...
实际上,Spring MVC支持注解驱动的事务管理、模型绑定、数据验证、国际化等功能。随着项目的复杂度增加,你可以逐步引入这些特性,使代码更加健壮和易维护。 9. **标签应用**:“简单实例”标签表明这是一个适合...
在实际开发中,"springmvc4简单例子"可能还会涉及异常处理、国际化、拦截器、文件上传下载、AJAX交互等更多功能。通过学习和实践这样的例子,你可以逐步掌握Spring MVC 4的基本用法和最佳实践。
- **国际化**:通过ResourceBundle和MessageSource,支持多语言的应用。 - **事件机制**:Spring提供了一种应用级事件发布和监听机制,用于组件间的异步通信。 通过阅读和运行这些源代码,读者可以更深入地理解...
Java 技术实现国际化是一项关键的能力,特别是在开发支持多语言的应用程序时。国际化(Internationalization,通常简称为 i18n,因为“i”到“n”之间有18个字母)是让软件能够适应不同语言和地区的过程。下面将详细...
ApplicationContext是在BeanFactory的基础上增加了国际化、事件传播、资源加载等功能,是更为强大的上下文容器,通常在实际开发中使用较多。 Spring MVC是Spring框架的一个模块,用于构建Web应用。它提供了一种模型...
Spring3 MVC是一个强大的Java...在深入学习过程中,你还可以探索更多高级特性,如数据绑定、类型转换、异常处理、国际化、主题支持等,以及如何与Spring Data、MyBatis等其他框架集成,进一步提升Web应用的功能和性能。
- Spring Security支持错误消息的国际化,你可以配置`MessageSource`来提供不同语言的提示。 这个小例子中,我们可能看到了一个简单的Spring Security配置,演示了如何启动基础的认证和授权流程。通过分析`spring...
Bean工厂负责创建、配置和管理对象,而ApplicationContext则在Bean工厂的基础上提供了更多企业级服务,如国际化、事件传播等。 2. **数据访问/集成**:Spring提供了对各种数据访问技术的支持,如JDBC、ORM...