1. 程式人生 > >Spring MVC 基於session 國際化配置!! 親測可用

Spring MVC 基於session 國際化配置!! 親測可用

今天要做網站的國際化 包括頁面 和 資料庫層面

下午找了些網上例子 都不大能用,參考了幾篇文章 綜合下 終於找到個解決方案

1 配置檔案 兩處增加

 a  dispatcherServlet.xml 檔案 這個就是spring-mvc.xml 

  <!-- 國際化文字 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">                   
<property name="basename" value="message_info" />                 
<property name="useCodeAsDefaultMessage" value="true" />         
</bean>

 b applicationContext.xml 

 增加 

<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="zh_CN"></property>
</bean>

2 .控制器層面

@RequestMapping(value = "welcome", method = RequestMethod.GET)
public String welcomeNew(HttpServletRequest request, HttpServletResponse response,String locale) {
List<RevitNewEntity> hotRevitList = revitNewEntityService.getHotRevit();
request.setAttribute("hotRevitList", hotRevitList);
List<RevitAddInShowDto> nowDownList = revitNewEntityService.getDownLoadNowRevit();
request.setAttribute("nowDownList", nowDownList);

String langType = locale;
if(langType==null||langType.equals("")){
return "/index";
}else{
if (langType.equals("zh")) {
Locale locale1 = new Locale("zh", "CN");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locale1);
} else if (langType.equals("en")) {
Locale locale1 = new Locale("en", "US");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locale1);
} else {
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, LocaleContextHolder.getLocale());
}
}

return "/index";
}

3 .url 觸發操作 http://localhost:8080/revitbus/welcome.html?locale=en

或者 http://localhost:8080/revitbus/welcome.html?locale=zh

4 .資原始檔路徑如下

測試資原始檔內容如下: message_info_en_US.properties
main.title=Hello World!  
title=SpringMVC
username=username     
password=password     
password2=password2     
submit=submit     
welcome=welcome     
message_info_zh_CN.properties 
title=SpringMVC\u5B9E\u4F8B
username=\u8F93\u5165\u7528\u6237\u540D\:    
password=\u8F93\u5165\u5BC6\u7801\: 
5 jsp 內容寫法 有兩種 匯入庫  <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%-- <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> --%>
資源內容顯示: <fmt:message key="title"></fmt:message>
<%-- <spring:message code="welcome"></spring:message> --%>
註釋放開關閉另一個也是可以的 效果圖  內容可以和上面資原始檔對照 這個中文

英文
參考文章:http://www.tuicool.com/articles/jA3yEvZ http://www.xdemo.org/spring-i18n/
http://www.boydavid.com/?post=57  表示感謝