Struts2框架(六)

一.國際化的概念

1.1 什麼是國際化

Struts國際化是建立在java國際化的基礎上,一樣也是通過提供不同國家/語言環境的消息資源,然後通過ResourcreBundle加載指定的Locale對應的資源文件,再取得該資源文件中指定key對應的消息—整個過程與java國際化完全相同。

1.2 什麼需要國際化

  • 程序:需要國際化
  • 數據:不需要國際化,輸入什麼就是什麼
    比如:
    用戶註冊的表單,有用戶名,密碼這5個漢字,在zh_CN語言環境,顯示的就是用戶名和密碼。但是在en_US語言環境,顯示的就應該是username和password。這就是程序。
    用戶名輸入的是【張三】,密碼輸入的是【test】,那無論在什麼語言環境都應該是是【張三】和【test】。這就是數據。

1.3 固定文本的國際化

例如:消息提示,錯誤提示和菜單,導航欄等等固定文本

1.3.1 創建消息資源包

一個資源包由多個文件組成,這些文件名都有命名規範:主要文件名語言代碼國家代碼.properties。 語言代碼:由iso規定的。國家代碼:有iso規定的
當文件只有主要文件名.properties時,表明它是默認資源包。瀏覽器會根據不同的語言環境找對應語言環境的資源包,當沒有時,找默認的。
每個資源包的內容都由相同的key和對應語言環境的value組成。
比如:
message_zh_CN.properties message_zh_HK.properties message_en_US.properties

1.3.2 讀取資源包文件

  • Action的國際化
    Action
    資源文件:
    資源文件

  • jsp頁面國際化
    目前不用這種方式
    這裏寫圖片描述
    使用jstl庫
    這裏寫圖片描述

    二.Struts2 中使用國際化

    2.1 Struts2使用國際化的前提

    首先,我們要知道,在Struts2中,所有的消息提示都是基於國際化的。其次,要想在Struts2中使用國際化,動作類必須繼承ActionSupport類

    2.2 Struts2使用國際化

    2.2.1 配置資源包

  • 全局資源包的配置
    全局資源包的配置

  • 包範圍資源包的配置
    包範圍資源包
    資源包名稱命名規範:package_語言代碼_國家代碼.properties(固定的)。以此種命名方式的資源包能被該包及其子包中的動作類訪問。
    優先級:高於全局消息資源包

  • 局部消息資源包(只爲動作類服務)
    局部消息資源包
    資源包名稱命名規範:動作類名稱語言代碼國家代碼.properties。以此種命名方式的資源包,只爲動作類服務。
    優先級最高(就近原則)
    Struts2中資源包的搜索順序:
    Struts2中資源包的搜索順序

2.2.2 讀取資源包內容

  • 動作類中的讀取方式(實際開發中不用)
    動作類中的讀取方式
  • 在頁面中讀取資源包內容
    直接訪問jsp
    直接訪問jsp

直接訪問jsp
通過動作類訪問jsp
 通過動作類訪問jsp
自由指定讀取資源包
自由指定讀取資源包

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章