Struts框架 7 國際化

2021-10-10 02:55:11 字數 2132 閱讀 2969

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...