`
liyixing1
  • 浏览: 967371 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

MessageSource实现国际化

阅读更多
ApplicationContext专用特性

ApplicationContext接口扩展了MessageSource接口,因而提供了消息处理的功能(i18n或者国际化)。与HierarchicalMessageSource一起使用,它还能够处理嵌套的消息,这些是Spring提供的处理消息的基本接口。让我们快速浏览一下它所定义的方法:

String getMessage(String code, Object[] args, String default, Locale loc):用来从MessageSource获取消息的基本方法。如果在指定的locale中没有找到消息,则使用默认的消息。args中的参数将使用标准类库中的MessageFormat来作消息中替换值。

String getMessage(String code, Object[] args, Locale loc):本质上和上一个方法相同,其区别在:没有指定默认值,如果没找到消息,会抛出一个NoSuchMessageException异常。

String getMessage(MessageSourceResolvable resolvable, Locale locale):上面方法中所使用的属性都封装到一个MessageSourceResolvable实现中,而本方法可以指定MessageSourceResolvable实现。

当一个ApplicationContext被加载时,它会自动在context中查找已定义为MessageSource类型的bean。此bean的名称须为messageSource。如果找到,那么所有对上述方法的调用将被委托给该bean。否则ApplicationContext会在其父类中查找是否含有同名的bean。如果有,就把它作为MessageSource。如果它最终没有找到任何的消息源,一个空的StaticMessageSource将会被实例化,使它能够接受上述方法的调用。

Spring目前提供了两个MessageSource的实现:ResourceBundleMessageSource和StaticMessageSource。它们都继承NestingMessageSource以便能够处理嵌套的消息。StaticMessageSource很少被使用,但能以编程的方式向消息源添加消息。ResourceBundleMessageSource会用得更多一些,为此提供了一下示例:
com.liyixing.spring.properties包下面有
format_en_GB.properties文件
test.mesage = 123
test.mesage = 456

format_zh.properties文件
<beans>
  <bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>com.liyixing.spring.properties.format</value>
</list>
</property>
</bean>
</beans>
String a = context.getMessage("test.mesage", null, "Default", null);
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "beans.xml", "beans1.xml" });
IAccount accountService = (IAccount) context.getBean("accountService");
IDownload download = (IDownload) context.getBean("downloadService");
Account account = (Account) context.getBean("account");
String a = context.getMessage("test.mesage", null, "Default",
new Locale("en", "GB"));

String b = context.getMessage("test.mesage", null, "Default",
new Locale("zh"));
结果

  • 大小: 1.4 KB
分享到:
评论

相关推荐

    springboot+beetl 实现国际化多语言切换.zip

    在本项目中,"springboot+beetl 实现国际化多语言切换.zip" 提供了一个使用Spring Boot和Beetl模板引擎实现Web应用国际化的实例。这个压缩包包含了一个名为"springboot-beetl-i18n"的子目录,里面应该有相应的源码和...

    springMVC实现国际化

    在Spring MVC中实现国际化(i18n)是为用户提供多语言支持的重要功能,这使得应用能够适应全球不同地区的用户需求。本项目是基于Eclipse开发的一个实战示例,包含了实现国际化所需的所有配置和代码,可以直接导入并...

    ssm框架上实现国际化/多语言

    在SSM框架上实现国际化和多语言功能,可以使得应用程序能够适应不同国家和地区用户的语言需求,提升用户体验。以下将详细介绍如何在SSM框架中实现这一功能。 首先,我们需要理解“国际化”(Internationalization)...

    Spring实现国际化的一个小例子

    在Spring框架中,实现国际化(Internationalization,简称i18n)是常见的需求,它使得应用程序可以根据用户所在的地区提供不同的语言版本。以下是一个详细的步骤,解释如何在Spring应用中实现国际化。 1. **理解...

    springside4

    8. **国际化与本地化**:SpringSide4支持多语言环境,通过Spring的ResourceBundle和MessageSource实现国际化和本地化,适应全球化需求。 9. **安全控制**:项目集成了Spring Security,提供了一套完整的权限管理和...

    SpringMVC代码

    12. **国际化与本地化**:SpringMVC支持多语言环境,通过LocaleResolver和MessageSource实现国际化和本地化。 总之,SpringMVC是一个强大且灵活的Web开发框架,它简化了MVC模式的实现,提高了开发效率,同时也提供...

    spring-framework-3.2.13.RELEASE 源代码

    12. **国际化和本地化**:Spring支持多语言环境,通过ResourceBundle和MessageSource实现国际化和本地化。 13. **安全管理**:Spring Security是Spring的一个子项目,提供了一套全面的安全管理解决方案,包括认证、...

    spring-framework-3.0.5-projects.rar

    8. **国际化**:Spring支持多语言环境,示例将展示如何配置并使用ResourceBundle和MessageSource实现国际化。 9. **安全性**:Spring Security是Spring的一个重要模块,用于处理认证和授权。通过示例,你可以学习...

    SpringBoot消息国际化配置实现过程解析

    SpringBoot 消息国际化配置实现过程解析 SpringBoot 消息国际化配置实现过程解析是指在 SpringBoot 项目中实现消息国际化配置的过程。该过程主要涉及到消息配置文件的管理、语言信息的设置、LocaleContext 的使用、...

    spring3.0MVC 含jar包

    Spring MVC提供对多语言环境的支持,通过LocaleResolver和MessageSource实现国际化。主题(Theme)功能则允许应用具有多套外观和风格。 十、MVC测试 Spring 3.0提供模拟HTTP请求的MockMvc工具,方便进行单元测试和...

    Maven SpringMVC

    SpringMVC可以通过ResourceBundle和MessageSource实现国际化,通过ThemeResolver实现主题切换,提供不同语言和风格的用户界面。 9. **SpringMVC与Spring Boot的整合** Spring Boot简化了Spring应用的启动和配置,...

    spring 实现国际化的全部代码

    ### Spring 实现国际化 (i18n) 的关键技术点 #### 一、国际化(i18n)在Spring中的重要性及应用场景 国际化(Internationalization,简称i18n)是指设计和开发软件产品时,使得产品能在各种语言和区域环境中进行...

    09 Spring IoC容器ApplicationContext如何实现国际化慕课专栏1

    在Spring框架中,ApplicationContext是IoC容器的核心,它不仅负责管理Bean,还提供了实现国际化(i18n)的功能。国际化使应用程序能够适应不同语言和地区的用户,无需修改代码即可提供多语言支持。Spring通过实现...

    springmvc 实现i18n国际化+freemarker小实例demo

    Spring MVC通过MessageSource接口来处理国际化信息。我们创建一系列资源文件,如`messages.properties`(默认英语)和`messages_zh_CN.properties`(简体中文),并将这些文件放在项目的`src/main/resources`目录下...

    spring messageSource结合ehcache demo

    在本文中,我们将深入探讨如何在Spring框架中利用`messageSource`与Ehcache整合,以实现国际化(i18n)功能并优化提示语句的数据库读取性能。`messageSource`是Spring提供的一种用于处理多语言环境下的消息管理机制,...

    java实现国际化

    Java实现国际化是一个重要的技术主题,尤其对于开发面向全球用户的软件来说。这个过程涉及到将应用程序的文本、日期格式、数字格式等本地化,以便适应不同国家和地区的语言与文化习惯。在Java中,这一功能主要通过...

    Spring mvc 国际化

    2. 配置MessageSource Bean:在Spring MVC的配置文件(如springservlet-config.xml)中添加一个MessageSource Bean,这个Bean用来指定国际化资源文件的位置。在该Bean中,需要设置basename属性,其值为基本名称加上....

    Maven + Spring mvc + Mybatis + Velocity +国际化配置 demo

    通过这个整合实例,开发者不仅可以学习到如何将这些流行的技术集成在一起,还能了解如何在实际项目中实现国际化,提高应用的可用性和灵活性。这个Demo为初学者提供了实践机会,同时也为有经验的开发者提供了一个快速...

    java国际化实现框架底层源码

    在实现国际化时,可能会涉及到对搜索关键词的处理,比如拼音转换、词语切分等。这些功能可能与特定的区域设置有关,例如,中文搜索可能需要考虑词语的顺序、全角/半角字符的转换等问题。 在源码中,我们可能会看到...

    Spring国际化

    Spring和其它的框架一样,也提供了国际化功能,它是通过MessageSource接口来实现的 ApplicationContext接口继承了MessageSource 。 MessageSource接口方法

Global site tag (gtag.js) - Google Analytics