日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC学习系列(8) 之 国际化

發布時間:2024/9/5 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC学习系列(8) 之 国际化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.基于瀏覽器請求的國際化實現:

1)在 spring的配置文件中添加

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"><!-- 國際化信息所在的文件名 --> <property name="basename" value="locale/message" /> <!-- 如果在國際化資源文件中找不到對應代碼的信息,就用這個代碼作為名稱 --> <property name="useCodeAsDefaultMessage" value="true" /> </bean>

2)在resources 下 建立文件夾 locale ,在locale下添加messages.properties、messages_zh_CN.properties、messages_en_US.properties三個文件

比如?resources/locale/messages_zh_CN.properties ?下的內容

message.login.fail=登錄失敗 message.login.success=登錄成功

比如?resources/locale/messages_en_US.properties ?下的內容

message.login.fail=Login Fail message.login.success=Login Success

3)在后臺中讀取資源化文件中的內容,并返回給前臺

在Controller 文件添加一個方法

@RequestMapping(value = "/testMessage.do")public String testMessage(HttpServletRequest request,Model model){logger.debug("enter MainController.testMessage()");//從后臺代碼獲取國際化信息RequestContext requestContext = new RequestContext(request);model.addAttribute("message", requestContext.getMessage("message.login.success"));return "testmessage";}

4)前臺顯示

<%@ 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>Insert title here</title> </head> <body>下面展示的是后臺獲取的國際化信息:<br/> ${message}

在前臺上直接顯示國際化文件中的內容
<spring:message code="message.login.fail" ></spring:message> </body> </html>

  

?

二.基于Session的國際化實現:

1)在 spring的配置文件中添加

<mvc:interceptors> <!-- 國際化操作攔截器 如果采用基于(請求/Session/Cookie)則必需配置 --> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> </mvc:interceptors> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

2)在后臺中

@RequestMapping(value = "/sessiontest", method = {RequestMethod.GET})
public String seesionTest(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());

// 從后臺代碼獲取國際化信息
RequestContext requestContext = new RequestContext(request);
model.addAttribute("message", requestContext.getMessage("message.login.success"));
return "testmessage";
}

 3) 同上

? 4) 在jsp 頁面上加入

使用session 切換 <a href="${ctx }/sessiontest?langType=zh">中文</a> | <a href="${ctx }/sessiontest?langType=en">英文</a><br/>
${message}<br>

?

三.基于Cookie的國際化實現:

同session 類似,不與session方式同時存在

1)在 spring的配置文件中添加

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />

2)后臺

@RequestMapping(value = "/cookietest", method = {RequestMethod.GET})public String cookietest(HttpServletRequest request, HttpServletResponse response, Model model,@RequestParam(value = "langType", defaultValue = "zh") String langType){if (langType.equals("zh")){Locale locale = new Locale("zh", "CN");(new CookieLocaleResolver()).setLocale(request, response, locale);}else if (langType.equals("en")){Locale locale = new Locale("en", "US");(new CookieLocaleResolver()).setLocale(request, response, locale);}else(new CookieLocaleResolver()).setLocale(request, response, LocaleContextHolder.getLocale());// 從后臺代碼獲取國際化信息RequestContext requestContext = new RequestContext(request);model.addAttribute("message", requestContext.getMessage("message.login.success"));return "testmessage";}

 

 3) 同上

? 4) 在jsp 頁面上加入

使用cookie 切換 <a href="${ctx }/cookietest?langType=zh">中文</a> | <a href="${ctx }/cookietest?langType=en">英文</a><br/> ${message}<br>

四.基于URL請求的國際化的實現:

1)自定義一個類

import java.util.Locale; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.LocaleResolver;public class MyAcceptHeaderLocaleResolver extends AcceptHeaderLocaleResolver {private Locale myLocal;public Locale resolveLocale(HttpServletRequest request) {return myLocal;} public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {myLocal = locale;}}

  2)在 spring的配置文件中添加

<bean id="localeResolver" class="xx.xxx.xxx.MyAcceptHeaderLocaleResolver"/>

  “xx.xxx.xxx”是剛才添加的MyAcceptHeaderLocaleResolver 類所在的包名。

保存之后就可以在請求的URL后附上 locale=zh_CN 或 locale=en_US?

 

參考:http://www.cnblogs.com/liukemng/p/3750117.html

?

轉載于:https://www.cnblogs.com/panie2015/p/5855645.html

總結

以上是生活随笔為你收集整理的SpringMVC学习系列(8) 之 国际化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。