理想青年

          理想
          posts - 1, comments - 1, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          1 struts2中使用資源文件

          Posted on 2007-05-20 18:53 richy.zhang 閱讀(472) 評論(1)  編輯  收藏
          struts2的資源文件如同其驗證文件一樣,是允許分散和集中的。使用范圍在于Tags和field error中描述信息的查找。整個搜索順序如下:
            1. ActionClass.properties  或者ActionClass_xx_XX.properties (xx_XX可以為zh_CN等)
            2. BaseClass.properties
            3. Interface.properties
            4. ModelDriven's model (如果實現(xiàn)了getModel())的類文件
            5. package.properties (包括superclass的package)
            6. search up the i18n message key hierarchy itself
            7. global resource properties

           global資源文件可如此定義:在struts.properties中插入

          struts.custom.i18n.resources=globalMessages
          那么globalMessages.properties或者globalMessages_zh_CN.properties就成為全局資源文件。全局文件一般放在src文件夾下。而下面的代碼說明資源文件globalMessages位于com.sansspackage下面
          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=格式化日期
          這個key可在幾處地方被調(diào)用
          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中的
                      <message key="invalid.ringName"></message>
          如果在name中以%{...}包裹一個名字,則會先在value-stack中進行ongl轉(zhuǎn)換,然后再去資源文件中獲取文本。
          <s:text name="%{text}" />
           
          在設(shè)置ui控件的label屬性時,則getText使用的更為廣泛。從中我們也可以看出%{}的一大用法就是計算ognl表達式的值,而不是直接使用引號中的內(nèi)容。

          參數(shù)化兩種方式
          1 直接在資源文件中使用ongl表達式,用${}包裹
          2 numbered placeholders {0} through {9}.
          item.edit=Edit {0}
          使用numbered placeholders時也有兩種方式
          <s:text name="format.date" value0="created"/>
          <s:text name="format.date"><ww:param value="created"/></s:text>

          附:資源文件的命名規(guī)則
          類名.properties 、package.properties 等前已描述,現(xiàn)在主要說說‘_’之后的字符的含義。
          這些字符其實最后用于jdk中java.util.Locale實例的構(gòu)造。

          ●    Locale

          該類包含對主要地理區(qū)域的地域化特征的封裝。通過設(shè)定Locale,我們可以為特定的國家或地區(qū)提供符合當?shù)匚幕?xí)慣的字體、符號、圖標和表達格式。例如,我們可以通過獲得特定Locale下的Calendar類的實例,顯示符合特定表達格式的日期。Locale有以下三個構(gòu)造函數(shù):

          ☆     Locale(String language)

          ☆     Locale(String language,String country)

          ☆     Locale(String language,String country,String variant)

          language參數(shù):兩個小寫英文字符,如zh表示Chinese
          country參數(shù):代表兩個大寫英文字符的ISO國家或地區(qū)編碼,如,CN表示China
          variant參數(shù):代表與供應(yīng)商或瀏覽器相關(guān)的代碼。如,WIN表示windows,MAC表示Macintosh,POSIX表示POSIX.
          因此當資源文件給出_zh_CN或_zh都可以成功地構(gòu)造Locale實例。

          評論

          # re: 1 struts2中使用資源文件[未登錄]  回復(fù)  更多評論   

          2008-07-23 09:38 by 啟明
          不錯,收藏了!

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阜平县| 特克斯县| 喀喇沁旗| 虞城县| 乐至县| 临泉县| 织金县| 孟津县| 云龙县| 江口县| 普定县| 志丹县| 固安县| 莆田市| 仙桃市| 宁乡县| 东台市| 准格尔旗| 珲春市| 莆田市| 台东市| 南投县| 德令哈市| 阳江市| 晋江市| 屯门区| 隆回县| 盘锦市| 绥德县| 法库县| 华池县| 章丘市| 鹤庆县| 正定县| 孝感市| 鹤峰县| 遂溪县| 龙陵县| 奎屯市| 馆陶县| 襄汾县|