




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
學習目標了解國際化的概念理解國際化的作用掌握國際化的使用國際化簡介國際化英文單詞為internationalization,該單詞比較長,不方便記錄,由于在i和n之間有18個字母,所以也稱i18n,這樣使用起來比較簡短方便。國際化軟件是指軟件能夠運行于不同的區(qū)域和語言環(huán)境中,根據(jù)用戶所處的區(qū)域和語言來修飾軟件界面和顯示信息,使用戶能夠用熟悉的界面環(huán)境來使用該軟件。Struts2的國際化支持Struts2框架的底層國際化與Java國際化是一致的,作為一個良好的MVC框架,Struts2將Java的國際化功能進行了封裝和簡化,開發(fā)者使用起來會更加簡單快捷。在Struts2中需要做國際化的有:JSP頁面的國際化、action錯誤信息的國際化、轉(zhuǎn)換錯誤信息的國際化、校驗錯誤信息的國際化。配置全局資源文件及輸出國際化信息準備資源文件,資源文件的命名格式如下:baseName_language_pertiesbaseName_pertiesbaseNperties其中baseName是資源文件的基本名,我們可以自定義,但language和country必須是java支持的語言和國家。如:中國大陸:baseName_zh_CN.properties美國:baseName_en_US.properties在struts.xml中通過struts.custom.i18n.resources常量把資源文件定義為全局資源文件,如:<constantname="struts.custom.i18n.resources"value="globalMessages"/>配置全局資源文件及輸出國際化信息在src文件夾中加入globalMessages_en_US.properties文件,內(nèi)容如下:
HelloWorld=HelloWorld!在src文件夾中加入globalMessages_zh_CN.properties文件,內(nèi)容如下:
HelloWorld=你好,世界!對于中文的屬性文件,我們編寫好后,應該使用jdk提供的native2ascii命令把文件轉(zhuǎn)換為unicode編碼的文件。命令的使用方式如下:
native2ascii源文件.properties目標文件.properties在WebRoot文件夾下加入HelloWorld.jsp文件。發(fā)布運行應用程序,在瀏覽器地址欄中輸入:http://localhost:8080/Struts2_Chapter08/HelloWorld.jsp,出現(xiàn)圖8-1所示的頁面參數(shù)國際化字符串許多情況下,我們都需要在運行時(runtime)為國際化字符插入一些參數(shù),例如在輸入驗證提示信息的時候。在Struts2中,我們通過以下兩種方法做到這點:在資源文件的國際化字符串中使用OGNL,格式為${表達式},例如:validation.require=${getText(fileName)}isrequired使用java.text.MessageFormat中的字符串格式,格式為{參數(shù)序號(從0開始),格式類形(number|date|time|choice),格式樣式},例如:validation.between=Datemustbetween{0,date,short}and{1,date,short}
在顯示這些國際化字符時,同樣有兩種方法設置參數(shù)的值:使用標志的value0、value1...valueN的屬性,如:<s:textname="validation.required"value0="UserName"/>使用param子元素,這些param將按先后順序,代入到國際化字符串的參數(shù)中,例如:<s:textname="validation.required">
<s:paramvalue="UserName"/></s:text>讓用戶方便的選擇語言開發(fā)國際化的應用程序時,有一個功能是必不可少的——讓用戶快捷地選擇或切換語言。在Struts2中,通過ActionContext.getContext().setLocale(Localearg)可以設置用戶的默認語言。不過,由于這是一個比較普遍的應用場景,所以Struts2為您提供了一個名為i18n的攔截器(Interceptor),并在默認情況下將其注冊到攔截器鏈(InterceptorChain)中。它的原理為在執(zhí)行Action方法前,i18n攔截器查找請求中的一個名為“request_locale”的參數(shù)。如果其存在,攔截器就將其作為參數(shù)實例化Locale對象,并將其設為用戶默認的區(qū)域(Locale),最后,將此Locale對象保存在session的名為“WW_TRANS_I18N_LOCALE”的屬性中。下面,將提供一個完整示例演示它的使用方法。包范圍資源文件在一個大型應用中,整個應用有大量的內(nèi)容需要實現(xiàn)國際化,如果我們把國際化的內(nèi)容都放置在全局資源屬性文件中,顯然會導致資源文件變的過于龐大、臃腫,不便于維護,這個時候我們可以針對不同模塊,使用包范圍來組織國際化文件。方法如下:在Java的包下放置package_language_perties資源文件,package為固定寫法,處于該包及子包下的action都可以訪問該資源。當查找指定key的消息時,系統(tǒng)會先從package資源文件查找,當找不到對應的key時,才會從常量struts.custom.i18n.resources指定的資源文件中尋找。在上述案例的基礎上將globalMessages_en_US.properties改為package_en_US.properties并放置于com.xtgj.struts2.chapter08.locale包下,將globalMess
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 兩兄弟合伙買房合同標準文本
- 半包裝修合同正規(guī)范例
- 護士聘用協(xié)議書范文二零二五年
- 工程地質(zhì)勘探合同
- 代銷茶葉合同標準文本
- 二零二五版貨物運輸合同的賠償金額的確定
- 二零二五主債權(quán)及不動產(chǎn)抵押擔保合同
- 貨物運輸合同托運人需注意事項
- 二零二五車輛指標租賃協(xié)議書范例
- 二零二五版公司并購業(yè)務梳理
- 安徽省合肥市2025屆高三下學期3月二模試題 語文 含解析
- 命案防控講座課件內(nèi)容
- 2024年廣西職業(yè)院校技能大賽中職組《大數(shù)據(jù)應用與服務》賽項競賽樣題
- 2024年全國統(tǒng)一高考英語試卷(新課標Ⅰ卷)含答案
- 常用CMYK色值表大全
- 消化道出血護理ppt(共17張PPT)
- 珠三角一年斷指四萬
- 2022版義務教育(數(shù)學)課程標準(含2022年修訂部分)
- 快板?繞口令?《玲瓏塔》
- 臺灣民法典目錄
- 8.8級螺栓上海紅本價
評論
0/150
提交評論