SpringMVC的國際化

2022-05-10 08:42:13 字數 1313 閱讀 3818

關於springmvc的國際化,這篇文章已經講的很好了。它講了有如下幾種國際化方式

1:基於http的header資訊的國際化(request.getlocale())

2:基於session的國際化(設定session的sessionlocaleresolver.locale_session_attribute_name

3:基於cookie的國際化

4:基於url的國際化    (注意上面文章的第四種方法是錯誤的,因為spring的bean預設是單例,不要使用例項變數來儲存狀態,這樣乙個使用者改變狀態,所有使用者都改變狀態了)

基於session的實現方式要求有個入口的url或者沒有url中都要求加入乙個lang引數,不是很方便,有沒有一種方式我想加的時候加,不相加的是有使用前面的local 。經過實踐基於url的國際化解決我的問題。

<

mvc:interceptors

>

<

bean

class

="org.springframework.web.servlet.i18n.localechangeinterceptor"

/>

mvc:interceptors

>

<

bean

id="localeresolver"

class

="com.sequoiadb.util.dbaaslocaleresolver"

/>

實現dbaaslocaleresolver的方法

新增國際化檔案

在src目錄下新增properties檔案,中文轉碼要使用native2ascii.exe工具,這個是jdk自帶的。

在這裡說下,上面提到的那篇文章的基於url的國際化**有點問題,因為如果不帶locale會報空指標異常,所以我修改了邏輯,第一次根據瀏覽器來進行國際化所以使用了request.getlocale(), 如果url中有locale引數就返回mylocale ,這個mylocale物件的構造在哪調我也不太清楚

唯一的bug就是你的locale引數填寫錯誤也會預設使用瀏覽器來進行國際化,而不是使用上一次的locale。

Spring MVC國際化配置

一 基於瀏覽器語言的國際化配置 使用spring的mvc,並且配置中有配置resource檔案 其中,message info是你的properties檔案的通用名。如 我的配置檔案叫message info.properties,message info zh cn.properties等等,只要...

SpringMVC 坑路11 國際化

靜態國際化配置 動態國際化配置 請求級別的國際化處理 session 級別的國家化處理 cookie 級別的國際化處理 1 在 spring 的配置檔案裡加入 注意 messagesource 不能隨意更改名稱。2 配置資源檔案 classpath message zh cn.properties ...

Springmvc框架本地化和國際化

springmvc的本地化和國際化 一 acceptheaderlocaleresolver 這個locale resolvers依據 accept language請求頭資訊進行解析處理,通常這個頭資訊包含客戶端操作資訊的本地標示。二 cookielocaleresolver 這個解析器通過coo...