struts2的資源文件如同其驗(yàn)證文件一樣,是允許分散和集中的。使用范圍在于Tags和field error中描述信息的查找。整個(gè)搜索順序如下:
又可定義RingManage.properties放到與class相同的目錄。還可以將資源文件命名成package.properties.搜索的順序都是stack式的。
在資源文件中,輸入的內(nèi)容是屬性對key-value,例如
1. 使用<s:text name="text.createRing" />
2. getText方式
<s:property value="getText('text.createRing')"/>
<s:textfield label="%{getText('text.name')}" name="category.name"/>
3.被validator的配置文件引用key。例如在RingManage-validation.xml中的
<s:text name="%{text}" />
在設(shè)置ui控件的label屬性時(shí),則getText使用的更為廣泛。從中我們也可以看出%{}的一大用法就是計(jì)算ognl表達(dá)式的值,而不是直接使用引號(hào)中的內(nèi)容。
參數(shù)化兩種方式
1 直接在資源文件中使用ongl表達(dá)式,用${}包裹
2 numbered placeholders {0} through {9}.
item.edit=Edit {0}
使用numbered placeholders時(shí)也有兩種方式
<s:text name="format.date" value0="created"/>
<s:text name="format.date"><ww:param value="created"/></s:text>
附:資源文件的命名規(guī)則
類名.properties 、package.properties 等前已描述,現(xiàn)在主要說說‘_’之后的字符的含義。
這些字符其實(shí)最后用于jdk中java.util.Locale實(shí)例的構(gòu)造。
country參數(shù):代表兩個(gè)大寫英文字符的ISO國家或地區(qū)編碼,如,CN表示China
variant參數(shù):代表與供應(yīng)商或?yàn)g覽器相關(guān)的代碼。如,WIN表示windows,MAC表示Macintosh,POSIX表示POSIX.
因此當(dāng)資源文件給出_zh_CN或_zh都可以成功地構(gòu)造Locale實(shí)例。
- ActionClass.properties 或者ActionClass_xx_XX.properties (xx_XX可以為zh_CN等)
- BaseClass.properties
- Interface.properties
- ModelDriven's model (如果實(shí)現(xiàn)了getModel())的類文件
- package.properties (包括superclass的package)
- search up the i18n message key hierarchy itself
- global resource properties
global資源文件可如此定義:在struts.properties中插入
struts.custom.i18n.resources=globalMessages
那么globalMessages.properties或者globalMessages_zh_CN.properties就成為全局資源文件。全局文件一般放在src文件夾下。而下面的代碼說明資源文件globalMessages位于com.sanss 這個(gè)package下面struts.custom.i18n.resources=com.sanss.globalMessages
又可定義RingManage.properties放到與class相同的目錄。還可以將資源文件命名成package.properties.搜索的順序都是stack式的。
在資源文件中,輸入的內(nèi)容是屬性對key-value,例如
invalid.ringName=請輸入鈴音名
text.createRing=創(chuàng)建鈴音
format.date=格式化日期
這個(gè)key可在幾處地方被調(diào)用text.createRing=創(chuàng)建鈴音
format.date=格式化日期
1. 使用<s:text name="text.createRing" />
2. getText方式

<s:textfield label="%{getText('text.name')}" name="category.name"/>

3.被validator的配置文件引用key。例如在RingManage-validation.xml中的
<message key="invalid.ringName"></message>
如果在name中以%{...}包裹一個(gè)名字,則會(huì)先在value-stack中進(jìn)行ongl轉(zhuǎn)換,然后再去資源文件中獲取文本。<s:text name="%{text}" />
在設(shè)置ui控件的label屬性時(shí),則getText使用的更為廣泛。從中我們也可以看出%{}的一大用法就是計(jì)算ognl表達(dá)式的值,而不是直接使用引號(hào)中的內(nèi)容。
參數(shù)化兩種方式
1 直接在資源文件中使用ongl表達(dá)式,用${}包裹
2 numbered placeholders {0} through {9}.



附:資源文件的命名規(guī)則
類名.properties 、package.properties 等前已描述,現(xiàn)在主要說說‘_’之后的字符的含義。
這些字符其實(shí)最后用于jdk中java.util.Locale實(shí)例的構(gòu)造。
● Locale
該類包含對主要地理區(qū)域的地域化特征的封裝。通過設(shè)定Locale,我們可以為特定的國家或地區(qū)提供符合當(dāng)?shù)匚幕?xí)慣的字體、符號(hào)、圖標(biāo)和表達(dá)格式。例如,我們可以通過獲得特定Locale下的Calendar類的實(shí)例,顯示符合特定表達(dá)格式的日期。Locale有以下三個(gè)構(gòu)造函數(shù):
☆ Locale(String language)
☆ Locale(String language,String country)
☆ Locale(String language,String country,String variant)
country參數(shù):代表兩個(gè)大寫英文字符的ISO國家或地區(qū)編碼,如,CN表示China
variant參數(shù):代表與供應(yīng)商或?yàn)g覽器相關(guān)的代碼。如,WIN表示windows,MAC表示Macintosh,POSIX表示POSIX.
因此當(dāng)資源文件給出_zh_CN或_zh都可以成功地構(gòu)造Locale實(shí)例。
posted @ 2007-05-22 12:34 richy.zhang 閱讀(2402) | 評論 (0) | 編輯 收藏