JavaBean與XML轉換——XStream使用筆記


轉載請注明原文地址:http://www.cnblogs.com/ygj0930/p/6648131.html 

    一:View層與Control層的數據交互

    做過Web項目的人都知道,當對一個request的處理結果攜帶很多數據時,比如:文章列表的顯示。如果從Control層一個參數一個參數地發送到文章列表頁面,是很麻煩而且不討好的。這時,我們可以把文章作為對象,把每篇文章的內容封裝到一個文章對象中,然后把查詢的文章結果add到一個數組。把數組set到request的屬性中,最后把request轉發到文章顯示頁面。在文章顯示頁面就可以獲取這個數組屬性,遍歷它提取文章內容了。

    同理,View層如果數據太多,也可以創建一個JS對象,把數據封裝進對象然后把對象作為參數傳給Control層即可。

 

    二:用XML來傳輸數據

    除了上面通過屬性、參數的方式攜帶數據外,我們可以通過XML來傳輸數據,具體來說,是對象。

    比如:Control層得到的結果是一個Java對象,那么怎么發回View層呢?我們可以把這個對象序列化為XML字符串,傳回View層解析提取數據。(當然,也可以轉換層JSON字符串。)【注意:XML/JSON序列化JavaBean只能保存對象的屬性成員,而Java的Serizable序列化則可以連同方法等等一切信息序列化】

    在Ajax中,經常要用到XML來傳輸數據與后台進行交互。

 

    三:JavaBean與XML的轉換

    我們用XStream來實現。

    XStream用於轉換時常用到的函數有:

    1:創建對象:XStream xStream=new XStream();

    2:對象轉換為XML字符串:String xml = xstream.toXML(bean);

    3:對象轉換為XML字符串並輸出到xml文檔:xStream.toXML(bean,outputstream);

    4:XML字符串轉換為Java對象;bean=(ClassName)xstream.fromXML(xmlstring);

    5:讀取XML文檔並轉換為Java對象:ClassName bean=(ClassName) xStream.fromXML(inputStream);

    6:在序列化時把包重命名:Xstream.aliasPackage(“新包名”,“原包名”);

  7:為類重命名:Xstream.alias(“新名”,class對象)方法

  8:為對象成員屬性重命名:Xstream.aliasField(“新名”,class對象,“原名”)方法

  9:隱藏字段:xstream.omitField(class對象,“隱藏字段名”)方法

  10:XStream的對象輸出流:

XStream xstream = new XStream();
ObjectOutputStream out = xstream.createObjectOutputStream(System.out);
out.writeObject(對象);

 

    11:XStream的對象輸入流:

String xml_string="XML字符串";
StringReader reader = new StringReader(xml_string);
XStream xstream = new XStream();
ObjectInputStream in = xstream.createObjectInputStream(reader);
ClassName bean=(ClassName) in.readObject();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM