程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 環境-Spring基於請求的的國際化問題

環境-Spring基於請求的的國際化問題

編輯:編程綜合問答
Spring基於請求的的國際化問題

spring基於URL請求改變語言環境

已經完成基於浏覽器的國際化,現在添加基於URL請求的國際化,查資料後配置如下,
資料不全,配置起來後總有問題,發出來步驟,求大蝦指點。

messageSource 以及 properties已經配置好

1.在xml中添加
圖片說明
2.重寫類
圖片說明
3.後台設置
圖片說明
4訪問
圖片說明

一個共設置這麼多,哪裡哪裡有陋或者錯的,求指點

最佳回答:


Spring對國際化的支持

Spring使用攔截器支持國際化很方便,使用時只需要兩個步驟:
一.spring配置
具體配置方式如下:

class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />



/util:list

class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">


這時還需要本地化處理器進行處理,有三種處理器,如下:

  1. 基於session

  1. 基於請求


3.基於cookie

以上三種處理器理論上配置任意一個就可以,不過有兩點需要注意:

1)第二個不能直接使用,需要通過繼承重寫相應的方法,如下:

public class MyLocaleResolver extends AcceptHeaderLocaleResolver{

private Locale myLocal;
public Locale resolveLocale(HttpServletRequest request) {
return myLocal==null?request.getLocale():myLocal;
}
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
myLocal = locale;
}

}

修改配置文件中的localeResolver配置,class指向這個類就可以了。

2)第一與第三個用法相同,只不過前者使用session,session過期就需要重新設置,而後者使用cookie,可以根據項目的具體情況進行選擇。

一般來說,使用第一種和第三種比較常見。

二.使用方法

當不做處理時默認會使用浏覽器自己的語言設置,如果想改變語言,只需要在請求後面加上一個參數即可,

默認的參數名為locale,裡面放的就是你的提交參數,如:en_US,zh_CN之類的,

所以,只需要在頁面上加上相應的鏈接即可,如下:

中文

英文

頁面中使用jstl或spring標簽,如下:


無論使用哪種處理器,locale設置過一次就可以了,不需要每個連接後面都加上locale參數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved