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();
JavaBean与XML转换——XStream使用笔记的更多相关文章
- XML,Object,Json分析转换Xstream采用
XML,Object,Json转换之浅析Xstream的使用 请尊重他人的劳动成果,转载请注明出处:XML,Object,Json转换之浅析Xstream的使用 XStream的是一个简单的库.主要用 ...
- JavaBean转xml
JavaBean转xml的工具就是:XStream XStream的作用: XStream可以把JavaBean对象转换成XML!通常服务器向客户端响应的数据都是来自数据库的一组对象,当我们不能直接把 ...
- json、javaBean、xml互转的几种工具介绍
json.javaBean.xml互转的几种工具介绍 转载至:http://blog.csdn.net/sdyy321/article/details/7024236 工作中经常要用到Json.Jav ...
- json、javaBean、xml互转的几种工具介绍 (转载)
工作中经常要用到Json.JavaBean.Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考. 现在主流的转换工具有json-lib.jackson.fastjson等,我为大家一一做简 ...
- javabean 和 xml 互转
1.场景描述 将javabean对象转换为xml字符串,将xml字符串转换为javabean对象. 2.maven依赖 <dependency> <groupId>jdom&l ...
- JavaBean与xml互转的方法详解
本文实例讲述了Jaxb2实现JavaBean与xml互转的方法.分享给大家供大家参考,具体如下: 一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的 ...
- java与xml转换 -- XStreamAlias
@XStreamAlias 1.特点 简化的API; 无映射文件; 高性能,低内存占用; 整洁的XML; 不需要修改对象;支持内部私有字段,不需要setter/getter方法 提供序列化接口; 自定 ...
- Jaxb2实现JavaBean与xml互转的方法详解
本文实例讲述了Jaxb2实现JavaBean与xml互转的方法.分享给大家供大家参考,具体如下: 一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的 ...
- XStream使用笔记
XStream是一个可以将JavaBean生成XML的工具,很方便的帮助我们在后台服务器将数据序列化为XML,接下来就可以将XML数据响应给前台进行数据交互 XStream需要的jar包 * 核心JA ...
随机推荐
- 【凯子哥带你学Framework】Activity界面显示全解析(下)
咱们接着上篇继续讲,上篇没看的请戳:[凯子哥带你学Framework]Activity界面显示全解析(上) 如何验证上一个问题 首先,说明一下运行条件: //主题 name="AppThem ...
- 《Redis设计与实现》
<Redis设计与实现> 基本信息 作者: 黄健宏 丛书名: 数据库技术丛书 出版社:机械工业出版社 ISBN:9787111464747 上架时间:2014-6-3 出版日期:2014 ...
- linux 7z 命令编译安装,mac安装p7zip
linux 7z 命令编译安装 7zip是一个开源的压缩软件 7z格式是压缩率最高的格式 服务器备份 数据几个g 要是tar压缩下载的话 时间太长 7zip压缩出来体积很小 首先安装 我这是 ce ...
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java ...
- Docker 常用命令与操作
介绍 此命令集合版本为 1.11.1 及以上 基础类 查看docker信息 # 查看docker版本 docker version # 显示docker系统的信息 docker info # 日志信息 ...
- sugar crm
百度百科:http://baike.baidu.com/link?url=7SnriwrF-4LcRfXctBbZjLc-UEUqWl3b0YR004pGFk4SJ1qMU9TMj37yFmHRsUS ...
- Effective Java - Item 1: Consider static factory methods instead of constructors
考虑使用静态工厂方法来替代构造方法, 这样的做的好处有四点. 1. 更好的表意 有的构造方法实际上有特殊的含义, 使用静态工厂方法能更好的表达出他的意思. 例如 BigInteger(int, int ...
- Dubbo服务化最佳实践
分包 建议将服务接口,服务模型,服务异常等均放在 API 包中,因为服务模型及异常也是 API 的一部分,同时,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP). 如果需要,也 ...
- Threejs 开发3D地图实践总结【转】
Threejs 开发3D地图实践总结 前段时间连续上了一个月班,加班加点完成了一个3D攻坚项目.也算是由传统web转型到webgl图形学开发中,坑不少,做了一下总结分享. 1.法向量问题 法线是垂 ...
- iOS开发-UITextView实现PlaceHolder的方式
之前开发遇到过UITextField中加入一个PlaceHolder的问题,直接设置一下即可,不过这次是需要在UITextView中实现一个PlaceHolder,跟之前有点不同.在网上参考了各位前辈 ...