springmvc 国际化

  本文基于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>
<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>
提示信息因为已经进行语言格式,可用直接输出



 








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值