`
cax_2014
  • 浏览: 9583 次
社区版块
存档分类
最新评论

spring支持资源文件国际化

 
阅读更多

1.spring对国际化支持

国际化支持在实际开发中可能是最常用的特性。对于一个需要支持不同语言环境的应用而言,我们所采取的最常用的策略一般是通过一个独立的资源文件(如一个properties文件)完成所有语言信息(如界面上的提示信息)的配置,Spring对这种传统的方式进行了封装,并提供了更加强大的功能,如信息的自动装配以及热部署功能(配置文件修改后自动读取,而无需重新启动应用程序) ,下面是一个典型的示例:

 

<beans>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basenames">
			<list>
				<value>myres</value>
			</list>
		</property>
</bean>
</beans>

 这里声明了一个名为messageSource的Bean(注意对于Message定义,Bean ID必须为messageSource,这是目前Spring的编码规约) ,对应类为ResourceBundleMessageSource,目前Spring中提供了两个MessageSource接口的实现,即ResourceBundleMessageSource和ReloadableResourceBundleMessageSource,后者提供了无需重启即可重新加载配置信息的特性。

在配置节点中, 我们指定了一个配置名“messages”。 Spring会自动在CLASSPATH根路径中按照如下顺序搜寻配置文件并进行加载(以Locale为zh_CN为例): 

messages_zh_CN.properties ,messages_zh.properties ,messages.properties ,messages_zh_CN.class,messages_zh.class ,messages.class 

(Spring实际上调用了JDK的ResourceBundle读取配置文件,相关内容请参见JDK文档)

 

示例中包含了两个配置文件,内容如下:

messages_zh_CN.properties:

userinfo=当前登录用户: [{0}]  登录时间:[{1}]

messages_en_US.properties:

userinfo=Current Login user: [{0}]Login time:[{1}]

 

我们可以通过下面的语句进行测试:

ApplicationContext ctx=new FileSystemXmlApplicationContext("bean.xml"); 
Object[] arg = newObject[]{ "Erica", Calendar.getInstance().getTime()}; 
//以系统默认Locale加载信息(对于中文WinXP而言,默认为zh_CN)
String msg = ctx.getMessage("userinfo", arg); 
System.out.println("Message is ===> "+msg)

如果输出产生乱码,可能是因为转码的时候出现异常(在eclipse中资源文件可以直接输入中文,自动转码,但是在外边通过记事本编辑输入中文是,转码就会出现异常),比较简单的解决办法是通过JDK提供的转码工具native2ascii.exe进行转换。

native2ascii -encoding UTF-8 messages_zh_CN.properties mys.txt

 把mys.txt替换成messages_zh_CN.properties,运行ok!

分享到:
评论

相关推荐

    Spring2.5的国际化配置

    只要有了这个配置,然后配置JSP渲染器为JSTL支持的,那么在你的JSP文件中使用fmt标记就可以实现客户浏览器语言国际化了。 如:&lt;fmt:message key="info.login.title" /&gt; 其中的info.login.title和你的资源文件对应

    Nacos实现SpringBoot国际化的增强

    一. 概述 阅读本文之前,你应该了解过SpringBoot的国际化实现与原理,在这里简单介绍下: 1. 国际化 国际化...所以通俗来讲,国际化就是为每种语言配置一套单独的资源文件,保存在项目中,由系统根

    编程语言+JAVAspring+国际化+多语言支持

    它介绍了JAVAspring的国际化的概念、原理和作用,以及如何使用JAVAspring的国际化来实现多语言支持,包括资源文件、区域设置、消息解析、日期格式、货币格式等内容,以及一些配置文件和注解的用法。

    JSP Spring ApplicationContext的国际化支持

    1.ApplicationContext接口继承了MessageResource接口,因此使用ApplicationContext作为spring容器可以使用国际化资源文件。 2.在MessageResource接口中定义了两个主要用于国际化的方法: String getMessage(String ...

    Spring 2.0 开发参考手册

    3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的访问 3.8.4. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.9.1. 使用Singleton-helper类 4. 资源 4.1. 简介 ...

    Spring中文帮助文档

    3.8.2. 利用MessageSource实现国际化 3.8.3. 事件 3.8.4. 底层资源的访问 3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ...

    Spring API

    3.8.2. 利用MessageSource实现国际化 3.8.3. 事件 3.8.4. 底层资源的访问 3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的访问 3.8.4. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.9.1. 使用Singleton-helper类 4. 资源 4.1. 简介 4.2. ...

    jquery-i18n:基于jquery的国际化工具类,支持同时引入多个语言资源文件,更友好的支持中文环境,在中文环境下无需引入资源文件

    用于前端文本国际化,支持同时引入多个语言资源文件,更友好的支持中文环境,在中文环境下无需引入资源文件 使用方法 文件引入 该插件依赖于jquery 和 js-cookie,可修改源代码取消对后者的依赖 [removed][removed] ...

    spring chm文档

    3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的访问 3.8.4. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.9.1. 使用Singleton-helper类 4. 资源 4.1. 简介 ...

    Spring攻略(第二版 中文高清版).part2

    11.7 国际化(I18n)信息属性 458 11.7.1 问题 458 11.7.2 解决方案 458 11.7.3 工作原理 458 11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 ...

    Spring.3.x企业应用开发实战(完整版).part2

    5.5.3 容器级的国际化信息资源 5.6 容器事件 5.6.1 Spring事件类结构 5.6.2 解构Spring事件体系的具体实现 5.6.3 一个实例 5.7 小结 第6章 Spring AOP基础 6.1 AOP概述 6.1.1 AOP到底是什么 6.1.2 AOP术语 6.1.3 AOP...

    Spring攻略(第二版 中文高清版).part1

    11.7 国际化(I18n)信息属性 458 11.7.1 问题 458 11.7.2 解决方案 458 11.7.3 工作原理 458 11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 ...

    4、Spring Security 安全权限管理手册

    1、区分Authentication(验证)与 Authorization(授权) 验证 这个用户是谁? 用户身份可靠吗? 授权 某用户A是否可以访问资源R 某用户A是否可以执行M操作 某用户A是否可以对资源R执行...11、本地化消息输出(国际化)

    Spring3.x企业应用开发实战(完整版) part1

    5.5.3 容器级的国际化信息资源 5.6 容器事件 5.6.1 Spring事件类结构 5.6.2 解构Spring事件体系的具体实现 5.6.3 一个实例 5.7 小结 第6章 Spring AOP基础 6.1 AOP概述 6.1.1 AOP到底是什么 6.1.2 AOP术语 6.1.3 AOP...

    基于i18n利用springboot实现后台国际化+源代码+文档说明

    项目做到尾声,临时需要添加国际化内容,开始只是前台展示的页面添加了国际化支持,后来发现一些后台提示很不友好,遂也选择进行国际化处理。 ## 实现 **Springboot对国际化支持的很好,我们就用自带的i18n实现国际...

    springboot知识点整理

    4.8.2 登录页面国际化 74 4.8.3 登录 80 4.8.4 拦截器进行登录检查 81 4.8.5 实验要求(没按要求做,不想改了!) 82 4.8.6 CRUD-员工列表 83 4.8.7 CRUD-员工修改 86 4.8.8 CRUD-员工添加 87 4.8.9 CRUD-员工删除 ...

    pycharm安装教程编程语言

    它介绍了JAVAspring的国际化的概念、原理和作用,以及如何使用JAVAspring的国际化来实现多语言支持,包括资源文件、区域设置、消息解析、日期格式、货币格式等内容,以及一些配置文件和注解的用法。

    Struts2属性文件详解

    该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开. struts.diSPAtcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet Request...

    struts2.1宝典

    10.国际化资源文件占位符 为资源文件传参数 22 没有JUNIT 22 OGNL 22 技巧一 30 Action类及Action Name的命名规范 31 擅长使用Dispatch的模式 32 不断的提炼公用的Action 33 将一个模块中的Action放置在一起 34 擅与...

Global site tag (gtag.js) - Google Analytics