国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring MVC的國際化實現代碼

Spring MVC的國際化實現代碼

2020-12-10 14:07落葉飛逝的戀 Java教程

本篇文章主要介紹了Spring MVC的國際化實現代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Spring MVC國際化是建立在Java國際化的基礎上的,其一樣是通過提供不同國家的語言環境的消息資源。通過ResourceBundle加載Locale對應的資源文件。再取得該資源文件中指定Key對應的消息。

步驟:

1.給系統加載國際化資源

2.輸出國際化。Spring MVC輸出國際化消息有兩種方式。

  1. 在頁面上輸出國際化消息。需要使用Spring MVC的標簽庫。
  2. 在Controller的處理方法中輸出國際化消息。需要使用org.springframework.web.servlet.support.RequestContext的getMessage()方法來完成。

1.Spring MVC國際化的相關知識

1.1 messageSource

利用messageSource bean告訴Spirng MVC國際化的屬性文件保存在哪里。

1.2 localeResolver

用戶選擇語言區域的時候,最常用的方法是通過讀取用戶瀏覽器的accept-language標題值。其他方式還有讀取HttpSession或者Cookie。

Spring MVC提供的包

1.AcceptHeaderLocaleResovler

讀取瀏覽器的accept-language標題是默認的,也是最容易使用的語言區域解析器。可以不用顯示配置。

2.SessionLocaleResovler

3.CookieLocaleResovler

上面兩個需要進行顯示配置。

1.3 message標簽

Spring MVC中顯示本地化消息通常使用Spring的message標簽。

 
?
1
 
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>

message標簽的屬性

1.arguments 標簽的參數,可以是一個字符串、數組或者對象
2.argumentSeparator 用來分割該標簽參數的字符
3.code 獲取消息的key
4.text 如果code屬性不存在,所顯示的默認文本
5.var 用于保存消息的變量
6.message MessageSourceResolvable參數
7.htmlEscape boolean值,表示被渲染的值是否應該進行HTML轉義
8.javaScriptEscape boolean值,表示被渲染的值是否應該進行javascript轉義
9.scope 保存var屬性中定義的變量的作用范圍

2.基于瀏覽器的accept-language國際化

基于瀏覽器的讀取accept-language,來確認語言區域,是默認的方式,通過AcceptHeaderLocaleResovler來處理。

因為是默認實現方式,所以在Spring的xml配置里面,可以顯示配置或者不配置

新建資源文件

在resources文件下,新建language_en_US.properties

 
?
1
 
2
language.username=Username:
language.password=Password:

在xml里面配置加載國家化資源節點信息

 
?
1
 
2
3
<bean class="org.springframework.context.support.ResourceBundleMessageSource" id="messageSource">
  <property name="basename" value="language"/>
</bean>

配置mvc語言攔截器

因為AcceptHeaderLocaleResovler是默認的,所以xml無須配置

JSP頁面代碼

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
  <title>Sign Up</title>
</head>
<body>
<form:form method="post" action="regist" modelAttribute="user">
  <table>
    <tr>
      <td><spring:message code="language.username"/></td>
      <td><form:input path="name"/></td>
    </tr>
    <tr>
      <td><spring:message code="language.password"/> </td>
      <td><form:password path="password"/></td>
    </tr>
  </table>
</form:form>
</body>
</html>

3.SessionLocaleResovler

SessionLocaleResovler不是默認語言區域解析器,需要在Xml顯示配置。如果需要使用它,則Spring MVC會從HttpSession作用域獲取用戶所設置的語言區域。

配置xml節點信息

 
?
1
 
2
3
4
5
6
7
<!--國際化語言攔截器-->
<mvc:interceptors>
  <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
</mvc:interceptors>
 
<!--這邊一定要配置id并且名稱為localeResolver-->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>

為什么上面配置id名稱一定要為localeResolver呢。因為DispatcherServlet里面定義的默認名稱就是為localeResolver。

后端代碼

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
@RequestMapping("signupsession")
public String signupsession(String request_locale, Model model, HttpServletRequest request) {
  if (request_locale != null) {
    if (request_locale.equals("zh_CN"))
      request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("zh","CN"));
    else if (request_locale.equals("en_US"))
      request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("en","US"));
  }
  User user = new User();
  model.addAttribute("user", user);
  return "signup_session";
}

前端jsp頁面

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
  <title>SessionLocaleResovler</title>
</head>
<body>
<a href="/user/signupsession?request_locale=zh_CN" rel="external nofollow" >中文</a>|<a href="/user/signupsession?request_locale=en_US" rel="external nofollow" >英文</a>
<form:form method="post" action="regist" modelAttribute="user">
  <table>
    <tr>
      <td><spring:message code="language.username"/></td>
      <td><form:input path="name"/></td>
    </tr>
    <tr>
      <td><spring:message code="language.password"/></td>
      <td><form:password path="password"/></td>
    </tr>
  </table>
</form:form>
</body>
</html>

4.CookieLocaleResovler國際化

SessionLocaleResovler不是默認語言區域解析器,需要在Xml顯示配置。如果需要使用它,則Spring MVC會從Cookie中獲取用戶所設置的語言區域。

配置xml節點

 
?
1
 
2
3
4
5
6
<!--國際化語言攔截器-->
<mvc:interceptors>
  <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
</mvc:interceptors>
 
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"></bean>

后臺代碼

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
@RequestMapping("signupcookie")
public String signupcookie(String request_locale, Model model, HttpServletRequest request, HttpServletResponse response) {
  if (request_locale != null) {
    CookieLocaleResolver resolver = new CookieLocaleResolver();
    if (request_locale.equals("zh_CN"))
      resolver.setLocale(request, response, new Locale("zh", "CN"));
    else if (request_locale.equals("en_US"))
      resolver.setLocale(request, response, new Locale("en", "US"));
  }
  User user = new User();
  model.addAttribute("user", user);
  return "signup_cookie";
}

前臺Jsp頁面

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
  <title>Spring國際化Cookie方式</title>
</head>
<body>
<a href="/user/signupcookie?request_locale=zh_CN" rel="external nofollow" >中文</a>|<a href="/user/signupcookie?request_locale=en_US" rel="external nofollow" >英文</a>
<form:form method="post" action="regist" modelAttribute="user">
  <table>
    <tr>
      <td><spring:message code="language.username"/></td>
      <td><form:input path="name"/></td>
    </tr>
    <tr>
      <td><spring:message code="language.password"/></td>
      <td><form:password path="password"/></td>
    </tr>
  </table>
</form:form>
</body>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.jianshu.com/p/271394ef4ba0?utm_source=tuicool&utm_medium=referral

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色av免费| 成人免费毛片嘿嘿连载视频 | 亚洲一区中文字幕在线观看 | 久久综合成人精品亚洲另类欧美 | 一区二区三区四区精品 | 91精品国产综合久久久久 | 欧美午夜在线观看 | 亚洲综合欧美日韩 | 一级毛片在线播放 | 一区二区三区在线播放 | 欧美日韩一区二区在线 | 久久久久一区 | 中文字幕不卡在线观看 | 亚洲精品男人的天堂 | 欧美三级视频 | 亚洲一区二区三区在线 | www国产精品 | 可以免费在线观看av的网站 | 91精品视频网 | 国产综合区 | 亚洲精品高潮呻吟久久av | 成人国产免费视频 | 欧美自拍视频 | 噜噜噜在线观看免费视频日本 | 中文字幕一区在线 | 伊大人久久香线焦宗合一75大 | 一区二区亚洲 | www中文字幕| 自拍偷拍欧美 | 成人激情在线播放 | 国产麻豆一区二区三区 | 自拍小电影 | 日日操av| 欧美日韩三级在线 | 国产一区二区久久久 | 天堂资源最新在线 | 性色aⅴ免费视频 | 久久久国产视频 | 欧美性hd| 日韩欧美一区二区中文字幕 | 精品日韩一区二区三区 |