Spring的MVC模式I18N的配置及使用方法

简介:
Spring的MVC模式I18N的配置及使用方法
某个加载xml配置文件配置,如bean.xml。
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>

通过上下文可以调用getMessage来实现I18N。(一种直接加载message上下文的方法:ApplicationContext ctx=new FileSystemXmlApplicationContext("bean.xml");)
Object[] arg = new Object[]{};
//以系统默认Locale加载信息(对于中文WinXP而言,默认为zh_CN)
String msg = ctx.getMessage("userinfo", arg, Locale.zh_CN);
System.out.println("Message is ===> "+msg);
代码中,我们将一个Object数组arg作为参数传递给ApplicationContext.getMessage方法,这个
参数中包含了出现在最终文字信息中的可变内容,ApplicationContext将根据参数中的Locale信息对其进
行处理(如针对不同Locale设定日期输出格式),并用其替换配置文件中的{n}标识(n代表参数数组中的
索引,从1开始)。

注意转码过程中产生的编码问题,一种比较简单的解决办法是通过JDK提供的转码工具native2ascii.exe进行转换。执行:
native2ascii messages_zh_CN.properties msg.txt

再用msg.txt文件替换Messages_zh_CN.properties文件。我们可以看到现在的
Messages_zh_CN.properties变成了如下形式:
userinfo=\u5f53\u524d\u767b\u5f55\u7528\u6237: [{0}]\u767b\u5f55\u65f6\u95f4:[{1}]
(通过在native2ascii命令后追加-reverse参数,可以将文件转回本地格式)
实际开发中,我们可以通过Apache Ant的Native2Ascii任务进行批量转码。如:
<native2ascii encoding="GBK" src="${src}" dest="${build}"/>
getMessage方法还有一个无需Locale参数的版本,JVM会根据当前系统的Locale设定进行相应处
理。可以通过在JVM启动参数中追加“-Duser.language=en”来设定当前JVM语言类型,通过JVM级的
设定,结合国际化支持功能,我们可以较为简单的实现多国语言系统的自动部署切换。
也可以通过资源访问的方式来实现对属性设置的访问。ApplicationContext.getResource方法提供了对资源文件访问支持,如:
Resource rs = ctx.getResource("classpath:config.properties");
File file = rs.getFile();
上例从CLASSPATH根路径中查找config.properties文件并获取其文件句柄。
getResource方法的参数为一个资源访问地址,如:
file:C:/config.properties
/config.properties
classpath:config.properties
注意getResource返回的Resource并不一定实际存在,可以通过Resource.exists()方法对其进行判断。
而在页面处理中,也可以用到i18n的信息串。
jsp中使用i18n的message:
<spring:message code="msg_code"/>

本文转自 dannyy1026 51CTO博客,原文链接:http://blog.51cto.com/dannyyuan/160495
相关文章
|
9天前
|
Java 开发工具 git
实现基于Spring Cloud的配置中心
实现基于Spring Cloud的配置中心
|
7天前
|
Java 应用服务中间件 开发者
Java面试题:解释Spring Boot的优势及其自动配置原理
Java面试题:解释Spring Boot的优势及其自动配置原理
29 0
|
7天前
|
前端开发 Java 应用服务中间件
我以为我对Spring MVC很了解,直到我遇到了...
所有人都知道Spring MVC是是开发的,却鲜有人知道Spring MVC的理论基础来自于1978 年提出MVC模式的一个老头子,他就是Trygve Mikkjel Heyerdahl Reenskaug,挪威计算机科学家,名誉教授。Trygve Reenskaug的MVC架构思想早期用于图形用户界面(GUI) 的软件设计,他对MVC是这样解释的。MVC 被认为是解决用户控制大型复杂数据集问题的通用解决方案。最困难的部分是为不同的架构组件想出好的名字。模型-视图-编辑器是第一个。
我以为我对Spring MVC很了解,直到我遇到了...
|
10天前
|
JSON 运维 监控
Spring Boot中的健康检查端点配置
Spring Boot中的健康检查端点配置
|
9天前
|
JSON 运维 监控
Spring Boot中的健康检查端点配置
Spring Boot中的健康检查端点配置
|
10天前
|
存储 安全 Java
Spring Boot中的配置文件加密
Spring Boot中的配置文件加密
|
9天前
|
前端开发 Java 应用服务中间件
Spring Boot自动配置详解
Spring Boot自动配置详解
|
9天前
|
XML 前端开发 Java
Spring Boot与Spring MVC的区别和联系
Spring Boot与Spring MVC的区别和联系
|
9天前
|
Java Spring
深入理解Spring Boot中的Profile配置
深入理解Spring Boot中的Profile配置
|
10天前
|
Java Spring
深入理解Spring Boot中的配置加载顺序
深入理解Spring Boot中的配置加载顺序