springmvc 国际化
2016-07-11 11:34
295 查看
本文基于SpringMVC国际化。描述了如何实现Spring的国际化,在jsp页面中如何获取国际化信息,本文描述如何在java代码中获取国际化信息,同时国际化切换和返回信息语言切换。
1、主要的jar包为:
<dependency>
<span style="white-space:pre"> </span><groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
springmvc的国际化主要分为基于浏览器请求、cookie、session三种。主要使用基于cookie的国际化。
这里配置默认语言为中文简体。
basenames配置国际化文件地址和国际化文件名称前缀。如:中文为:message_zh_CN。国际化文件主要采用properties文件。文件内部已key和value方式存储数据.
3、获取国际化语言与切换语言
a、获取请求的语言。(注:该方法只能获取该次请求的语言,如果请求的方法内部切换了语言则无法获取)
b、方法内部获取语言
注入
c、切换语言(切换的语言 一定要有对应的properties文件)
注入
切换为中文
切换日文
d、提示信息格式化语言
注入
提示信息的message为properties文件中的某个key
此处支持messageformat的写法。即
message:中文语句:{0}
输出语句:中文语句:张三
e、页面提示
对于页面静态文字可用
提示信息因为已经进行语言格式,可用直接输出
1、主要的jar包为:
<dependency>
<span style="white-space:pre"> </span><groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency>2、基于请求的国际化配置
springmvc的国际化主要分为基于浏览器请求、cookie、session三种。主要使用基于cookie的国际化。
<span style="font-size:14px;"><bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="zh_CN" /></span>
这里配置默认语言为中文简体。
<span style="font-size:14px;"><!-- 国际化文件加载 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="defaultEncoding" value="UTF-8"/> <!-- 默认编码格式 --> <property name="useCodeAsDefaultMessage" value="true"></property> <!-- 加载不到对应key时,不抛出异常直接返回key作为value --> <property name="cacheSeconds" value="1800"></property> <!-- 刷新国际化资源时间 单位:秒。 --> <property name="basenames"> <list> <value>classpath:lang/message</value> </list> </property> </bean></span>
basenames配置国际化文件地址和国际化文件名称前缀。如:中文为:message_zh_CN。国际化文件主要采用properties文件。文件内部已key和value方式存储数据.
3、获取国际化语言与切换语言
a、获取请求的语言。(注:该方法只能获取该次请求的语言,如果请求的方法内部切换了语言则无法获取)
<span style="font-size:14px;">Locale locale = RequestContextUtils.getLocaleResolver(request).resolveLocale(request); String language = locale.getLanguage();</span>
b、方法内部获取语言
注入
<span style="font-size:14px;">@Resource private CookieLocaleResolver resolver;</span>
<span style="font-size:14px;">Locale local = resolver.resolveLocaleContext(request).getLocale(); String language = local.getLanguage();</span>
c、切换语言(切换的语言 一定要有对应的properties文件)
注入
<span style="font-size:14px;">@Resource private CookieLocaleResolver resolver;</span>
切换为中文
<span style="font-size:14px;">resolver.setLocale(request, response, Locale.CHINA);</span>
切换日文
<span style="font-size:14px;">resolver.setLocale(request, response, Locale.JAPANESE);</span>
d、提示信息格式化语言
注入
@Resource private MessageSource messageSource;
提示信息的message为properties文件中的某个key
String message = messageSource.getMessage("message", null, local);
此处支持messageformat的写法。即
String[] obj = {"张三"}; String message = messageSource.getMessage("message", obj, local);
message:中文语句:{0}
输出语句:中文语句:张三
e、页面提示
对于页面静态文字可用
<spring:message code="welcome"></spring:message>
提示信息因为已经进行语言格式,可用直接输出
相关文章推荐
- struts 防止表单重复提交
- 浅谈Java设计模式(二十三)解释器模式(Interpreter)
- 【SpringMVC框架】springmvc入门程序-环境搭建
- java对象占用内存分析
- java.lang.UnsatisfiedLinkError: Native method not found:问题解决
- 使用IntelliJ IDEA 14和Maven创建java web项目
- 浅谈Java设计模式(二十二)中介者模式(Mediator)
- Java enum的用法
- java-----容器类总结之ArrayList与LinkedList的区别
- 【MyEclipse中项目红叉问题】 使用方案
- SpringMVC 取消拦截总结
- Java实现敏感词过滤
- 浅谈Java设计模式(二十一)访问者模式(Visitor)
- Eclipse配置PyDev插件
- 浅谈Java设计模式(二十)状态模式(State)
- Dubbo简单实例
- Spring单元测试
- spring 获取bean的几种方式
- Java RMI 框架(远程方法调用)
- Java泛型知识学习