<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鐵手劍譜

    上善若水
    數據加載中……
    Struts秘籍之第1段:第2.6式. 使用多個資源束

    第2.6式. 使用多個資源束

    問題

    你可能想要將你的應用資源分解到多個文件中,以改善應用的組織和維護性,特別是在團隊開發的環境中。

    動作要領

    創建單獨的屬性文件并且在struts-config.xml中為每一個文件聲明一個message-resources元素。

    <message-resources
      
    parameter="com.oreilly.strutsckbk.MessageResources"/>
    <message-resources 
      
    parameter="com.oreilly.strutsckbk.LabelResources"
      key
    ="labels">
    </message-resources>
    <message-resources 
      
    parameter="com.oreilly.strutsckbk.HeaderResources"
      key
    ="headers">
    </message-resources>

     

    動作變化

    Struts 使用消息資源來提供對錯誤消息、字段標注、以及其他靜態文本的存儲機制。對于默認的Struts 實現,你可以將消息存儲為屬性文件(.properties文件)中的名稱(關鍵字)/值對。消息資源集基本上相當于Java ResourceBundle(資源束)。

    你可以將你的消息資源束性文件通過message-resources元素來配置。元素的parameter屬性指示了屬性文件的相對于classpath的名稱。你可以通過將文件路徑中的分隔符替換為點號,以及刪除文件名中的.properties擴展名來產生這個屬性的值。比如,如果你的屬性文件位于/WEB-INF/classes/com/oreilly/strutsckbk/MessageResources.properties,你可以將消息資源元素設置為:

    <message-resources
      
    parameter="com.oreilly.strutsckbk.MessageResources"/>

    在應用啟動時, Struts將創建消息資源的運行時表達(一個對象實例),然后將其保存在servlet context中。

    你并不限于只使用一個消息資源。然而,和使用多Struts配置文件不同,如果你使用多個消息資源文件,它們并不時合并成一個文件。相反,你需要定義消息資源的不同的集合。每一個集合使用一個key屬性指定的唯一的值來標識。如果這個屬性沒被使用,那么該消息資源就會被設置為默認的消息集。只有一個默認消息集存在。同時,只有一個消息資源集對應于同一模塊中的每一個唯一關鍵字。如果你使用同一關鍵字定義了多個消息資源束,則最后一個指定的將被使用。

    key屬性的值是作為servlet context 屬性的名稱,從屬性文件創建的消息資源束就保存在它之下。key值被用在Struts標簽之中,比如bean:message,來標識消息資源集,并引用到來自于屬性文件的資源束。下面是你可以如何從labels消息資源來訪問一個消息的方法:


    <bean:message bundle="labels" key="label.url"/>

    bundle屬性的值對應于struts-config.xml文件中的message-resources元素的key屬性。bean:message標簽也有一個key屬性,但它和message-resources元素的key屬性的含義完全不同。它指定一個特定的屬性來訪問消息資源中的消息。

    不幸的是,這種在XML元素和JSP標簽中使用同一個屬性名的方法在Struts中很普遍。所以必須仔細研究和注意Struts taglib文檔 (http://jakarta.apache.org/struts/userGuide/index.html) 以及Struts 的配置文檔(http://jakarta.apache.org/struts/userGuide/configuration.html#struts-config) ,免得搞混淆了。

    Struts 并不關心你如何分解你的消息資源屬性文件。一種辦法是按照消息類型分解。比如,你可以將你的消息資源分解為下面的幾組:

    • 錯誤消息
    • 提示性消息
    • 字段標注
    • 表頭單元個文本

    雖然這樣分解消息資源是合乎邏輯和合理的,但在團隊環境中則傾向于按照功能進行分解。比如,考慮一個人力資源應用,它有薪酬、福利和管理功能區。你可以為每一個功能區創建一個消息資源屬性文件。每一個屬性文件都包含該功能區域所特定的錯誤消息、提示消息、字段標注和其他信息。如果你的開發團隊是按照這些業務功能區進行分組的,按照相同的分組原則對消息資源進行分組則更加合理。相同的方法和原則也適用于Struts 配置文件的分解。

    如果你熟悉Struts module,上述的每一個功能區都是一個很好的Struts module的候選。如果你使用module,那么你在struts-config文件中為某一個模塊所定義的消息資源就僅適用于該模塊。事實上,你可以在不同的模塊中定義具有相同key屬性的message-resource元素。回想一下, Struts 是使用key值將MessageResources保存在servlet context中。更準確地說,實際的值將用于模塊名稱(通常引用為模塊的前綴),以及消息資源的key屬性值的串聯。

    相關招式

    第2.4式提供了關于分解應用組件的技術。Struts 用戶指南提供了定義消息資源的文檔,其地址為:http://jakarta.apache.org/struts/userGuide/configuration.html#resources_config.

    Struts MessageResources的JavaDoc API可以在http://jakarta.apache.org/struts/api/org/apache/struts/util/MessageResources.html處找到。

    Struts 文檔中關于bean:message標簽的文檔可以在http://jakarta.apache.org/struts/userGuide/struts-bean.html#message處找到。

    posted on 2005-05-17 17:38 鐵手 閱讀(2148) 評論(1)  編輯  收藏 所屬分類: JavaStruts系列

    評論

    # Struts 秘籍(CookBook)[TrackBack] 2005-11-12 18:29 阿泠

    本系列源改編自O'Reily的Strus Cookbook
    [引用提示]阿泠引用了該文章, 地址: http://blog.donews.com/inclear/archive/2005/11/12/624363.aspx
      回復  更多評論    
    主站蜘蛛池模板: 18禁止观看免费私人影院| 国产成人+综合亚洲+天堂| 国产一二三四区乱码免费| 国产一级高清免费观看| 色欲色欲天天天www亚洲伊| 国产精品久久久久免费a∨| 亚洲欧洲日产韩国在线| 无码区日韩特区永久免费系列| 亚洲系列中文字幕| 永久在线免费观看| 亚洲一级片在线播放| 成人免费一级毛片在线播放视频| 亚洲一区二区三区亚瑟| 毛片免费视频播放| 337P日本欧洲亚洲大胆精品| 国产大片线上免费看| 免费人成大片在线观看播放电影| 亚洲成A人片在线观看中文| 日韩在线视频线视频免费网站| 国产a v无码专区亚洲av| 免费看黄的成人APP| 亚洲网站在线观看| 成人人免费夜夜视频观看| 看成年女人免费午夜视频| 亚洲综合国产一区二区三区| 免费国产成人α片| 亚洲国产精品免费观看| 免费大香伊蕉在人线国产| 三年片在线观看免费| 亚洲中文字幕人成乱码| 免费一级做a爰片久久毛片潮喷| 国产在线精品观看免费观看| 亚洲成AV人片在WWW色猫咪| 真人做人试看60分钟免费视频| 中文字幕亚洲码在线| 亚洲永久无码3D动漫一区| 免费福利视频导航| 男人免费视频一区二区在线观看| 亚洲AV电影院在线观看| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 精品国产日韩亚洲一区91|