1),如何配置國際化資源檔案
i. action範圍資源檔案:在action類檔案所在的路徑建立名為actionname_ language_ country . properties的檔案
ii.包範圍資源檔案: 在包的根路徑下建立檔名為package_ language_ country . properties的屬性檔案,一旦建立,處於該包下的所有action都可以訪問該資源檔案。注意:包範圍資源檔案的basename就是package,不是action所在的包名。
iii.全域性資源檔案
命名方式: basename_ language_ country . properties
配置struts. xml :
iv.國際化資源檔案載入的順序如何呢?離當前action較近的將被優先載入。
2).如何在頁面上和action類中訪問國際化資源檔案的value值
i.在action類中。若action實現了textprovider介面,則可以呼叫其gettext()方法獲取value值
>通過繼承actionsupport的方式。
注:的方式就也可以從國際化資源檔案中獲取value值了,因為此時在物件棧中有defaulttextprovider的乙個例項,該物件 中提供了訪問國際化資源檔案的gettext()方法,同時還需要通知struts2框架1abel中放入的不再是一 個普通的字串,而是一 個ognl表示式,所以使用%{}把gettext()包裝起來,以強制進行ognl解析。
lable獲取國際化資源檔案中的value:
當主題為******上述方法得不到資源檔案中的值,可以用:
頁面上可以直接使用標籤來訪問國際化資源檔案裡的value值。
ii.頁面上可以使用s:text 標籤;對於表單標籤可以使用表單標籤的key屬性值
>若有佔位符,則可以使用s:text 標籤的s:param子標籤來填充佔位符
>可以利用標籤和ognl表示式直接訪問值棧中的屬性值(物件棧和map棧)
3).實現通過超連結切換語言.
i. 關鍵之處在於知道struts2 框架是如何確定local 物件的!
ii.可以通過閱讀i18n***知道。
iii.具體確定locale物件的過程:
> struts2使用i18n***處理國際化,並且將其註冊在預設的***棧中
> 118n***在執行action方法前, 自動查詢請求中乙個名為request_ locale 的引數。
如果該引數存在,***就將其作為引數,轉換成locale物件,並將其設為使用者預設的locale(代表國家/語言環境)。
並把其設定為session的ww_ trans_ i18n_ locale屬性
>若request沒有名為request_ locale 的引數,則i18n***會從session 中獲取ww_ trans_ i18n_ locale的屬性值, .
若該值不為空,則將該屬性值設定為瀏覽者的預設locale
>若session中的ww_ trans i18n_ locale的屬性值為空,則從actioncontext 中獲取locale物件。
iv.具體實現: 只需要在超連線的後面附著request_ locale 的請求引數,值是語言國家**。
english
中文 。
注意:超連結必須是乙個struts2的請求,即使118n***工作!|
Struts國際化規則
對struts應用實現國際化應該遵循以下原則 盡量不在servlet中使用含非英文本元的常量字串。對於jsp檔案,應該對page指令中的charset屬性進行相應的設定。不要在jsp檔案中直接包含本地化的訊息資源,兒應該把訊息資源存放在resource bundle的資源檔案中。不比在每個jsp或s...
struts的國際化
form表單 ahref language?request locale zh cn 中文 a ahref language?request locale en 英文 a s actionerror s form action tokentest s textfield name name labe...
Struts的國際化
1 什麼是本地化和國際化 軟體的本地化 乙個軟體在某個國家或地區使用時,採用該國家或地區的語 言,數字,貨幣,日期等習慣。軟體的國際化 軟體開發時,讓它能支援多個國家和地區的本地化應用。使 得應用軟體能夠適應多個地區的語言和文化風俗習慣。本地化資訊 資源檔案 基本名 語言名 國家碼 properti...