转载和引用,请注明原文出处! Fork me on GitHub
结局很美妙的事,开头并非如此!

SpringMVC系列(八)国际化

一、页面国际化

1.在pom.xml引入国际化需要的依赖

1 <!--国际化相关依赖 begin  -->
2     <dependency>
3       <groupId>jstl</groupId>
4       <artifactId>jstl</artifactId>
5       <version>1.2</version>
6     </dependency>
7 <!--国际化相关依赖 end  -->

2.在success.jsp里面添加jstl的fmt

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8"%>
3 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

3.在springmvc.xml里面国际化资源文件

1 <!-- 配置国际化资源文件 -->
2     <bean id="messageSource"
3         class="org.springframework.context.support.ResourceBundleMessageSource">
4         <property name="basename" value="i18n"></property>    
5     </bean>

4.src/main/java新建国际化资源文件

i18n.properties

1 i18n.username=Username
2 i18n.password=Password

i18n_zh_CN.properties

1 i18n.username=\u7528\u6237\u540D
2 i18n.password=\u5BC6\u7801

i18n_en_US.properties

1 i18n.username=Username
2 i18n.password=Password

5.在success.jsp页面通过jstl的标签获取值

1 <!--国际化 begin  -->
2 <p><b>国际化 begin</b></p>
3 <fmt:message key="i18n.username"></fmt:message>
4 <br>
5 <fmt:message key="i18n.password"></fmt:message>
6 <p><b>国际化 end</b></p>    
7 <!--国际化 end  -->

 二、java代码国际化(依赖于i18n_zh_CN.properties和i18n_en_US.properties)

1.注入ResourceBundleMessageSource

1 @Autowired
2 private ResourceBundleMessageSource messageSource;

2. 通过getMessage方法获取国际化资源

1 @RequestMapping("/i18n")
2     public String testI18n(Locale locale){
3         String val = messageSource.getMessage("i18n.user", null, locale);
4         System.out.println(val); 
5         return "i18n";
6     }

三、点击超链接切换语言进行页面国际化(全局国际化)

(依赖于一的fmt标签、i18n_zh_CN.properties和i18n_en_US.properties)

原理如下:

1.LocaleChanceInterceptor拦截器获取local对象

2. SessionLocalResolver解析器把local对象放到session里面

3.应用程序从session里面获取local对象进行国际化

 

 1.在jsp页面设置语言切换链接

1 <a href="i18n?locale=zh_CH">中文</a>
2     
3 <br><br>
4 <a href="i18n?locale=en_US">英文</a>

2.在springmvc.xml文件里面配置SessionLocaleResolver和LocaleChangeInterceptor

1 <!-- 配置 SessionLocalResolver -->
2     <bean id="localeResolver"
3         class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>
4     
5     <mvc:interceptors>
6 
7         <!-- 配置 LocaleChanceInterceptor -->
8         <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
9     </mvc:interceptors>

 

posted @ 2017-11-12 16:23  小不点啊  阅读(579)  评论(0编辑  收藏  举报