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)
流程圖: