Spring 实现国际化
2016-05-20 00:00
197 查看
摘要: Spring 框架实现国际化
Maven依赖
在Spring应用中,国际化的配置比较简单,下面四步完成国际化的快速配置
第一步,配置messageSource和localeResolver
第二步,编写message_*.properties
message_en.properties
message_zh_CN.properties(汉字已转成unicode码)
第三步,页面引入spring标签库
引入
使用
已完成国际化的配置,其中请注意SessionLocaleResolver和CookieLocaleResolver的区别,很显然,通过Session只能对当前的会话有效,Cookie则对Cookie有效期内的会话都有效。在使用Cookie的时候,需要设置Cookie的过期时间,否则关闭浏览器之后,Cookie即失效了,没有达到目的。当然,也可以保存用户的语言设置信息到数据库,用户登录之后即可将语言改变成用户设置的语言。
转载:http://www.xdemo.org/spring-i18n/
Maven依赖
<properties
>
<
springframework
>4.0.5.RELEASE</
springframework
>
</properties
>
<dependencies
>
<!-- Spring web mvc -->
<
dependency
>
<
groupId
>org.springframework</
groupId
>
<
artifactId
>spring-webmvc</
artifactId
>
<
version
>${springframework}</
version
>
</
dependency
>
</
dependencies
>
在Spring应用中,国际化的配置比较简单,下面四步完成国际化的快速配置
第一步,配置messageSource和localeResolver
<!-- 配置国际化资源文件路径 -->
<
bean
id
=
"messageSource"
class
=
"org.springframework.context.support.ResourceBundleMessageSource"
>
<
property
name
=
"basename"
>
<!-- 定义消息资源文件的相对路径 -->
<
value
>messages/message</
value
>
</
property
>
</
bean
>
<!-- 基于Cookie的本地化解析器 -->
<
bean
id
=
"localeResolver"
class
=
"org.springframework.web.servlet.i18n.CookieLocaleResolver"
>
<
property
name
=
"cookieMaxAge"
value
=
"604800"
/>
<
property
name
=
"defaultLocale"
value
=
"zh_CN"
/>
<
property
name
=
"cookieName"
value
=
"Language"
></
property
>
</
bean
>
<!-- 基于Session的本地化解析器 -->
<!--<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />-->
第二步,编写message_*.properties
message_en.properties
hi=hello
something=The People's Republic of China
Chinese=Chinese
English=English
index=Index
welcome=Welcome
OtherPage=Other Page
message_zh_CN.properties(汉字已转成unicode码)
hi=\u4F60\u597D
something=\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD
Chinese=\u4E2D\u6587
English=\u82F1\u6587
OtherPage=\u5176\u4ED6\u9875\u9762
index=\u9996\u9875
welcome=\u6B22\u8FCE
第三步,页面引入spring标签库
引入
1 | <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> |
1 | < spring:message code = "welcome" ></ spring:message > |
第四步,切换语言
@Autowired
CookieLocaleResolver resolver;
//@Autowired SessionLocaleResolver resolver;
/**
* 语言切换
*/
@RequestMapping
(
"language"
)
public
ModelAndView language(HttpServletRequest request,HttpServletResponse response,String language){
language=language.toLowerCase();
if
(language==
null
||language.equals(
""
)){
return
new
ModelAndView(
"redirect:/"
);
}
else
{
if
(language.equals(
"zh_cn"
)){
resolver.setLocale(request, response, Locale.CHINA );
}
else
if
(language.equals(
"en"
)){
resolver.setLocale(request, response, Locale.ENGLISH );
}
else
{
resolver.setLocale(request, response, Locale.CHINA );
}
}
return
new
ModelAndView(
"redirect:/"
);
}
已完成国际化的配置,其中请注意SessionLocaleResolver和CookieLocaleResolver的区别,很显然,通过Session只能对当前的会话有效,Cookie则对Cookie有效期内的会话都有效。在使用Cookie的时候,需要设置Cookie的过期时间,否则关闭浏览器之后,Cookie即失效了,没有达到目的。当然,也可以保存用户的语言设置信息到数据库,用户登录之后即可将语言改变成用户设置的语言。
转载:http://www.xdemo.org/spring-i18n/
相关文章推荐
- java字符集&编码问题
- 个人总结之Eclipse关联SVN
- java运行程序时设置参数
- 如何给struts2传递对象值,含数组
- uri异常,java.net.URISyntaxException
- Thinking in Java学习笔记,可以被Future.cancel()中断的资源
- Vert.x源码-创建集群
- java反射
- 如何在Ember2.0及以上版本模板中使用script标签
- JAVA CONCURRENCY EXECUTORS 介绍Java并发处理线程池
- 关于遍历删除集合中的元素
- GC中的对象自救
- java.util.concurrent.locks与synchronized及其异同
- spring boot 关于资源的一般配置(二)
- spring-boot(5) 的logback 整理
- [javaSE] IO流(FIle对象递归文件列表)
- 详解spring 每个jar的作用(转)
- Java实现的大整数分解Pollard's rho算法程序
- spring配置出错at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:244
- ubuntu16.04 jdk1.6.0_45配置