struts 國際化及i18n攔截器原理

1.在struts2中可以使用標籤<s:text name=""/> 和<s:textfiled key=""/>獲取國際化資源信息,如果帶有佔位符使用<s:param name=""/>來提供參數。

2.多種資源文件配置方式:

1.全局資源文件配置,在struts.xml中struts.custom.i18n.resources設置資源文件名稱,如

<constant name="struts.custom.i18n.resources" value="i18n"></constant>

 則對應的資源文件是:i18n.properties,i18n_zh_CN.properties,i18n_en_US.properties;統一放在src目錄下。

 

2.Action資源文件,跟action放在同一個目錄下,命名規則是:ChildAction.properties

3.package資源文件,命名規則是:package.properties

 

訪問規則:action>package>全局

 

原理:struts2通過i18n攔截器來實現國際化,以下3種情況

1)如果請求帶有request_locale參數,把request_locale轉換成locale,保存到session中,key爲:WW_TRANS_I18N_LOCALE,使用該locale作爲國際化。

2)如果請求帶有request_only_locale參數,request_only_locale轉換成locale,使用該locale作爲國際化。

3)如果請求中不帶有request_locale或request_only_locale,則從session中找key爲WW_TRANS_I18N_LOCALE的locale,

如果在session中找到了,直接使用該locale;如果沒找到,則從ActionContext中獲取locale(即爲從瀏覽器中獲取locale)

 

流程圖:


 

 

 

 

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