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();

 

转载于:https://www.cnblogs.com/ygj0930/p/6648131.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值