posts - 14,  comments - 37,  trackbacks - 0

          你可能想要將你的應(yīng)用資源分解到多個(gè)文件中,以改善應(yīng)用的組織和維護(hù)性,特別是在團(tuán)隊(duì)開(kāi)發(fā)的環(huán)境中。

          動(dòng)作要領(lǐng)

          創(chuàng)建單獨(dú)的屬性文件并且在struts-config.xml中為每一個(gè)文件聲明一個(gè)message-resources元素。

           1<message-resources
           2  parameter="com.oreilly.strutsckbk.MessageResources"/>
           3<message-resources 
           4  parameter="com.oreilly.strutsckbk.LabelResources"
           5  key="labels">
           6</message-resources>
           7<message-resources 
           8  parameter="com.oreilly.strutsckbk.HeaderResources"
           9  key="headers">
          10</message-resources>

          動(dòng)作變化

          Struts 使用消息資源來(lái)提供對(duì)錯(cuò)誤消息、字段標(biāo)注、以及其他靜態(tài)文本的存儲(chǔ)機(jī)制。對(duì)于默認(rèn)的Struts 實(shí)現(xiàn),你可以將消息存儲(chǔ)為屬性文件(.properties文件)中的名稱(chēng)(關(guān)鍵字)/值對(duì)。消息資源集基本上相當(dāng)于Java ResourceBundle(資源束)。

          你可以將你的消息資源束性文件通過(guò)message-resources元素來(lái)配置。元素的parameter屬性指示了屬性文件的相對(duì)于 classpath的名稱(chēng)。你可以通過(guò)將文件路徑中的分隔符替換為點(diǎn)號(hào),以及刪除文件名中的.properties擴(kuò)展名來(lái)產(chǎn)生這個(gè)屬性的值。比如,如果 你的屬性文件位于/WEB- INF/classes/com/oreilly/strutsckbk/MessageResources.properties,你可以將消息資源元 素設(shè)置為:

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

          在應(yīng)用啟動(dòng)時(shí), Struts將創(chuàng)建消息資源的運(yùn)行時(shí)表達(dá)(一個(gè)對(duì)象實(shí)例),然后將其保存在servlet context中。

          你并不限于只使用一個(gè)消息資源。然而,和使用多Struts配置文件不同,如果你使用多個(gè)消息資源文件,它們并不時(shí)合并成一個(gè)文件。相反,你需要定 義消息資源的不同的集合。每一個(gè)集合使用一個(gè)key屬性指定的唯一的值來(lái)標(biāo)識(shí)。如果這個(gè)屬性沒(méi)被使用,那么該消息資源就會(huì)被設(shè)置為默認(rèn)的消息集。只有一個(gè) 默認(rèn)消息集存在。同時(shí),只有一個(gè)消息資源集對(duì)應(yīng)于同一模塊中的每一個(gè)唯一關(guān)鍵字。如果你使用同一關(guān)鍵字定義了多個(gè)消息資源束,則最后一個(gè)指定的將被使用。

          key屬性的值是作為servlet context 屬性的名稱(chēng),從屬性文件創(chuàng)建的消息資源束就保存在它之下。key值被用在Struts標(biāo)簽之中,比如bean:message,來(lái)標(biāo)識(shí)消息資源集,并引用 到來(lái)自于屬性文件的資源束。下面是你可以如何從labels消息資源來(lái)訪問(wèn)一個(gè)消息的方法:

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

          bundle屬性的值對(duì)應(yīng)于struts-config.xml文件中的message-resources元素的key屬性。bean: message標(biāo)簽也有一個(gè)key屬性,但它和message-resources元素的key屬性的含義完全不同。它指定一個(gè)特定的屬性來(lái)訪問(wèn)消息資源 中的消息。

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

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

          • 錯(cuò)誤消息
          • 提示性消息
          • 字段標(biāo)注
          • 表頭單元個(gè)文本

          雖然這樣分解消息資源是合乎邏輯和合理的,但在團(tuán)隊(duì)環(huán)境中則傾向于按照功能進(jìn)行分解。比如,考慮一個(gè)人力資源應(yīng)用,它有薪酬、福利和管理功能區(qū)。你 可以為每一個(gè)功能區(qū)創(chuàng)建一個(gè)消息資源屬性文件。每一個(gè)屬性文件都包含該功能區(qū)域所特定的錯(cuò)誤消息、提示消息、字段標(biāo)注和其他信息。如果你的開(kāi)發(fā)團(tuán)隊(duì)是按照 這些業(yè)務(wù)功能區(qū)進(jìn)行分組的,按照相同的分組原則對(duì)消息資源進(jìn)行分組則更加合理。相同的方法和原則也適用于Struts 配置文件的分解。

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

          相關(guān)招式

          第2.4式提供了關(guān)于分解應(yīng)用組件的技術(shù)。Struts 用戶(hù)指南提供了定義消息資源的文檔,其地址為: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 文檔中關(guān)于bean:message標(biāo)簽的文檔可以在http://jakarta.apache.org/struts/userGuide/struts-bean.html#message處找到。

          posted on 2007-07-10 10:21 冰封的愛(ài) 閱讀(248) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2EE
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          相冊(cè)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 亳州市| 南阳市| 当涂县| 南江县| 泌阳县| 武清区| 南充市| 清苑县| 河津市| 嵊州市| 乳山市| 黄大仙区| 崇义县| 桑植县| 清丰县| 灵山县| 小金县| 汕头市| 齐河县| 余干县| 高唐县| 奉贤区| 报价| 沧源| 油尖旺区| 麻城市| 黑河市| 兴海县| 濮阳县| 高碑店市| 景泰县| 罗山县| 海淀区| 南城县| 黑水县| 泾源县| 苏尼特右旗| 启东市| 平南县| 酉阳| 灵台县|