Terry.Li-彬

          虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(19)

          隨筆分類(107)

          隨筆檔案(141)

          文章分類(284)

          文章檔案(342)

          相冊

          收藏夾(58)

          家裝

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          著名的Open Source論壇Jive有很多東西值得我們分析和學習,通過分析其Jdom的使用機制,我們可以自如方便的讀寫XML配置文件,從而實現下列一些功能:
            
            在配置文件中設置系統語言版本屬性,不同語言版本,系統界面文字不一樣,可以定義自己國家的文字,比如英文版中文簡體版。這樣,可以很方便的將一個系統延伸到各種語言,不用直接修改程序,只要修改XML配置文件就可以。
            
            在配置文件中設置郵件內容,通常一個系統都有各種自動郵件分發,比如用戶注冊成功后,會有一封Email發送到他的信箱,這套系統安裝在不同客戶場合,Email的內容當然不一樣,如A客戶使用了這套系統,當然希望在Email中有A客戶的單位名稱,這些都不必修改程序可以完成。
            
            設置系統的可選屬性,一個系統安裝在不同客戶場合中,客戶的要求總有些不一樣,有些功能是可選的,那么當然這些都要設置在XML配置文件中。
            
            使用XML存放樹形結構記錄是最方便的,尤其對于那些目錄分類系統,如Yahoo,在大分類中有小分類,或者直接是元素我們知道關系數據庫是不擅長存放樹形數據,在關系數據庫中,典型做法是采取兩個表:一個表記錄每個cell;一個表指明其前后關系;但是我們一旦要從這兩張表展開樹形結構,將要在空間和時間上反復平衡。
            
            如果使用XML作為數據源,就很方便解決這個問題,如果配合對XML數據源有很方便的增、修、等功能,那么我們當然選擇XML,實際上,Jdom就方便地提供了這個工具.Jdom是類似DOM SAX之類的XML解析辦法,只適合Java語言,Jdom的特點就是簡單方便。
            
            那么,讓我們來看看Jive是怎么實現上面功能的吧,它是把這些屬性都寫在一個叫jive_config.xml的文件中。這個XML文件的排列方式和使用方式是這樣:
            
            XML文件內容格式:
            
            <!-- root element, all properties must be under this element -->
            <jive>
            <email>
            <fromName>Jive_Administrator</fromName>
            <fromEmail>webmaster@example.com</fromEmail>
            <subject>Your thread was updated!</subject>
            <body>Hello {name}! The thread {threadName} was updated!</body>
            </email>
            <jive>
            
            其中:
            
            <jive></jive>
            
            是根元素,所有的屬性必須在其中。使用方式也比較簡單,使用標點符號“.”來間隔。比如我們要得到上面的webmaster@example.com的值,那么使用email.fromEmail就可以。在Jive中,具體語句就是JiveGlobals.getJiveProperty("email.fromEmail");這樣獲取值很簡單,而且明了,無論XML樹形結構有多深,我們都可以方便的獲取。
            
            這里關鍵的是一個使用Jdom來解析XML文件的類:XMLProperties ,其中實現了幾個主要操作方法:
            
            獲得(查詢):getProperty(name) ;
            
            新增修改:properties.setProperty(name, value);
            
            刪除:properties.deleteProperty(name) ;
            
            這幾個方法是不是很類似Hasntable的方法?Hashtable中數據是存放在內存中,而XML是存放在文件系統,無疑我們可以象使用hashtable一樣方便的使用XML。
            
            XMLProperties我們可以原封不動的拷貝到我們系統中。唯一要做的就是編制類似Jive的JiveGlobals,其實這也很簡單,分兩步:先load取出XML文件;然后就提供getProperty(name)等方法。如
            
            public class JiveGlobals {
            private static final String JIVE_CONFIG_FILENAME = "jive_config.xml";
            ....
            
            public static String getJiveProperty(String name) {
            loadProperties();
            return properties.getProperty(name);
            }
            ....
            
            private synchronized static void loadProperties() {
            if (properties == null) {
            //Create a manager with the full path to the xml config file.
            properties = new XMLProperties(jiveHome + File.separator +
            JIVE_CONFIG_FILENAME);
            }
            }
            }
            
            當然,所有這些前提,是到http://www.jdom.org下載Jdom包,并加入到Tomcat的common/lib中,或者放入Classpath中。
            
            其他輔助文件有:DataFormatFilter.java DataUnformatFilter.java XMLFilterBase.java。如果你對Jdom具體每一句是如何使用的,可以仔細研究XMLProperties,很容易理解的.
          posted on 2007-09-11 10:11 禮物 閱讀(217) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 曲麻莱县| 什邡市| 会泽县| 万盛区| 蒙山县| 桂东县| 应用必备| 肇庆市| 新闻| 长汀县| 肥城市| 雷波县| 伊宁县| 灵寿县| 利辛县| 大丰市| 东兰县| 岑溪市| 宜都市| 岳阳市| 英德市| 汕头市| 黎川县| 兰溪市| 满城县| 专栏| 钟山县| 金门县| 屏东县| 沂南县| 尼勒克县| 新密市| 甘谷县| 浦江县| 邻水| 沙雅县| 闻喜县| 勃利县| 鞍山市| 青浦区| 扎赉特旗|