1.搭建SpringMVC框架,不過多闡述
2.spring-mvc.xml加入以下配置:
<!-- 國際化資源配置,資源文件綁定器-->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 國際化資源文件配置,指定properties文件存放位置 -->
<property name="basename" value="classpath:messages/messages" />
<!-- 如果在國際化資源文件中找不到對應代碼的信息,就用這個代碼作為名稱 -->
<property name="useCodeAsDefaultMessage" value="true" />
</bean>
<!-- 動態切換國際化 ,國際化放在session中 -->
<mvc:interceptors>
<!-- 國際化操作攔截器 如果采用基於(請求/Session/Cookie)則必需配置 -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
3.在resources新建目錄messages,然后新建以下兩個文件:
messages_en_US.properties:money=money
messages_zh_CN.properties:money=金錢
4.后台控制器編寫
package com.net.xinfang.controller; import java.util.Locale; import javax.servlet.http.HttpServletRequest; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.i18n.SessionLocaleResolver; @Controller @RequestMapping(value = "/cte") public class CntoEnController { @RequestMapping(value="/getcte", method = {RequestMethod.GET}) public String test(HttpServletRequest request,Model model, @RequestParam(value="langType", defaultValue="zh") String langType){ if(langType.equals("zh")){ Locale locale = new Locale("zh", "CN"); request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale); } else if(langType.equals("en")){ Locale locale = new Locale("en", "US"); request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale); } else{ request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,LocaleContextHolder.getLocale()); } return "cte"; } }
5.jsp頁面編寫
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SpringMVC國際化</title>
</head>
<body>
選擇語言:<a href="${pageContext.request.contextPath}/cte/getcte?langType=zh">中文</a> | <a href="${pageContext.request.contextPath}/cte/getcte?langType=en">英文</a>
<br></br>
<spring:message code="money" />
</body>
</html>
6.測試
