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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring Boot国际化支持

發布時間:2024/2/28 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot国际化支持 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 添加Maven支持
    • LocaleResolver
    • LocaleChangeInterceptor
    • 定義Message Sources
    • Controller文件
    • html文件
    • 運行應用程序

Spring Boot國際化支持

國際化支持應該是所有的做國際化網站都需要考慮的一個問題,Spring Boot為國際化提供了強有力的支持,本文將會通過一個例子來講解Spring Boot的國際化。

添加Maven支持

Spring Boot本身就支持國際化,我們這里添加一個模板支持來通過頁面來展示,我們這里添加thymeleaf模板:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>

LocaleResolver

我們需要為系統指定一個默認的LocaleResolver:

@Bean public LocaleResolver localeResolver() {SessionLocaleResolver slr = new SessionLocaleResolver();slr.setDefaultLocale(Locale.US);return slr; }

上面的例子中我們自定義了一個SessionLocaleResolver,并且指定了默認的Locale。

LocaleChangeInterceptor

接下來,我們定義一個LocaleChangeInterceptor來接收Locale的變動。這里我們通過lang參數來接收。

@Bean public LocaleChangeInterceptor localeChangeInterceptor() {LocaleChangeInterceptor lci = new LocaleChangeInterceptor();lci.setParamName("lang");return lci; }

當然,我們需要將這個Interceptor注冊到SpringMVC中:

@Override public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(localeChangeInterceptor()); }

定義Message Sources

默認情況下,Spring Boot會在src/main/resources查找message文件,默認的message文件是messages.properties,如果指定了某種語言,那么就是messages_XX.properties,其中XX是Local code。

messages.properties是key value的格式,如果在對應的local文件中沒找到相應的key,則會在默認的messages.properties中查找。

我們默認定義英語的messages.properties如下:

greeting=Hello! Welcome to our website! lang.change=Change the language lang.eng=English lang.fr=French

同時我們定義一個法語的message文件messages_fr.properties :

greeting=Bonjour! Bienvenue sur notre site! lang.change=Changez la langue lang.eng=Anglais lang.fr=Francais

Controller文件

我們定義一個跳轉的controller文件:

@Controller public class PageController {@GetMapping("/international")public String getInternationalPage() {return "international";} }

html文件

相應的html文件如下:

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head><meta charset="ISO-8859-1" /><title>Home</title><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script><script>$(document).ready(function() {$("#locales").change(function () {var selectedOption = $('#locales').val();if (selectedOption != ''){window.location.replace('international?lang=' + selectedOption);}});});</script> </head> <body> <h1 th:text="#{greeting}"></h1><br /><br /> <span th:text="#{lang.change}"></span>: <select id="locales"><option value=""></option><option value="en" th:text="#{lang.eng}"></option><option value="fr" th:text="#{lang.fr}"></option> </select> </body> </html>

運行應用程序

好了,接下來我們可以運行了。

如果我們訪問http://localhost:8080/international?lang=en , 則會讀取默認的英語資源:

通過切換到法語環境:http://localhost:8080/international?lang=fr, 我們可以看到:

環境已經切換過來了。

本文的例子可以參考:https://github.com/ddean2009/learn-springboot2/tree/master/springboot-Internationalization

更多精彩內容且看:

  • 區塊鏈從入門到放棄系列教程-涵蓋密碼學,超級賬本,以太坊,Libra,比特幣等持續更新
  • Spring Boot 2.X系列教程:七天從無到有掌握Spring Boot-持續更新
  • Spring 5.X系列教程:滿足你對Spring5的一切想象-持續更新
  • java程序員從小工到專家成神之路(2020版)-持續更新中,附詳細文章教程

更多教程請參考 flydean的博客

總結

以上是生活随笔為你收集整理的Spring Boot国际化支持的全部內容,希望文章能夠幫你解決所遇到的問題。

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