- 浏览: 184867 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
yu505656166:
这个问题是怎么解决的啊?
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题 -
dextersmake:
我的配置和你的差不多,调了有一些效果,但是还不是很满意。
YARN内存使用优化配置 -
kjkhi:
dxb350352 写道怎么用啊,运行完了也不知道取值的方法 ...
Apache POI组件使用eventusermodel模式读取Excel文档内容 -
dxb350352:
怎么用啊,运行完了也不知道取值的方法
Apache POI组件使用eventusermodel模式读取Excel文档内容 -
wanshijian:
相同问题,解决了!
使用cxf的wsdl2java是遇到的问题
使用XStream把javaBean转化成xml文件时,当JavaBean的某些变量为null是,将在xml文件中不输出这个属性!如
当sex为null时,那么输出的xml文件为
如果我们希望能把全部变量输出,需要给XStream实例注册一个转化器,实现Converter接口,这个接口提供三个方法,在它的官方文档中有详细介绍。http://xstream.codehaus.org/javadoc/index.html
这里我们需要实现的功能是,把null值的属性都在xml文件中输出!如上面的Person输出为
那么我们需要新建一个实现Converter接口的类,如
另外我们还需要注册这个类,如
Class Person{ String name; String sex; }
当sex为null时,那么输出的xml文件为
<person> <name>***</name> </person>
如果我们希望能把全部变量输出,需要给XStream实例注册一个转化器,实现Converter接口,这个接口提供三个方法,在它的官方文档中有详细介绍。http://xstream.codehaus.org/javadoc/index.html
这里我们需要实现的功能是,把null值的属性都在xml文件中输出!如上面的Person输出为
<person> <name>***</name> <sex></sex> </person>
那么我们需要新建一个实现Converter接口的类,如
package com.asrfid.jay.action; import java.lang.reflect.Method; import java.util.List; import com.asrfid.jay.dto.Consignee; import com.asrfid.jay.dto.Consignor; import com.asrfid.jay.dto.Goods; import com.asrfid.jay.dto.SendXML; import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import com.thoughtworks.xstream.io.HierarchicalStreamReader; import com.thoughtworks.xstream.io.HierarchicalStreamWriter; public class NullConverter implements Converter{ @Override public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { SendXML obj = (SendXML)source; Method[] methods = SendXML.class.getMethods(); for(Method m : methods){ String methodName = m.getName(); if (methodName.indexOf("get") != -1 && methodName != "getClass") { String name = methodName.substring(3); Object o = null; try { o = m.invoke(obj, new Object[0]); } catch (Exception e) { e.printStackTrace(); } if (o instanceof Consignee) { writer.startNode("ConsigneeInfomation"); Consignee consignee = (Consignee)o; Method[] methods2 = Consignee.class.getMethods(); for (Method m2 : methods2) { methodName = m2.getName(); if (methodName.indexOf("get") != -1 && methodName != "getClass") { name = methodName.substring(3); writer.startNode(name); Object con1 = null; try { con1 = m2.invoke(consignee, new Object[0]); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } writer.setValue(con1==null?"":con1.toString()); writer.endNode(); } } writer.endNode(); }else if (o instanceof Consignor) { writer.startNode("ConsignorInfomation"); Consignor consignor = (Consignor)o; Method[] methods2 = Consignor.class.getMethods(); for (Method m2 : methods2) { methodName = m2.getName(); if (methodName.indexOf("get") != -1 && methodName != "getClass") { name = methodName.substring(3); writer.startNode(name); Object con1 = null; try { con1 = m2.invoke(consignor, new Object[0]); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } writer.setValue(con1==null?"":con1.toString()); writer.endNode(); } } writer.endNode(); }else if(o instanceof java.util.List){ writer.startNode("goodsInformations"); List lists = (java.util.List)o; for(int i =0;i<lists.size();i++){ Goods goods = (Goods)lists.get(i); Method[] methods3 = Goods.class.getMethods(); for (Method m3 : methods3) { methodName = m3.getName(); if (methodName.indexOf("get") != -1 && methodName != "getClass") { name = methodName.substring(3); writer.startNode(name); Object con1 = null; try { con1 = m3.invoke(goods, new Object[0]); } catch (Exception e) { e.printStackTrace(); } writer.setValue(con1==null?"":con1.toString()); writer.endNode(); } } } writer.endNode();//goodsInformations }else { writer.startNode(name); writer.setValue(o==null?"":o.toString()); writer.endNode();// } } } } @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { // TODO Auto-generated method stub return null; } @Override public boolean canConvert(Class type) { // TODO Auto-generated method stub return type.equals(SendXML.class); } }
另外我们还需要注册这个类,如
SendXML sendXML = this.sendXMLManager.getSendXML(shippingId); XStream xStream = new XStream(new DomDriver()); xStream.alias("ShippingOrder", SendXML.class); xStream.alias("consigneeInfomation", Consignee.class); xStream.alias("consignorInfomation", Consignor.class); xStream.alias("GoodsInfomation", Goods.class); xStream.registerConverter(new com.asrfid.jay.action.NullConverter()); String xml = xStream.toXML(sendXML);
发表评论
-
大数据处理--倒排索引
2014-06-28 14:08 4399简介 倒排索引源 ... -
大数据处理--BitSet
2014-06-28 11:01 1249java.util.BitSet可以按位存储。计算机中一个字 ... -
大数据处理--BloomFilter
2014-06-28 10:58 916BloomFilter——大规 ... -
hadoop 2.x升级异常
2014-06-19 11:54 22851、通过FileSystem这个API去访问hdfs上面的 ... -
Windows 编译Hadoop的Eclipse插件
2013-07-24 00:53 0http://www.cnblogs.com/fly ... -
log4j指定配置文件路径
2013-07-09 11:15 1935在默认情况下 log4j 会从WEB-INF/cl ... -
使用CXF发布和调用webservice
2013-05-08 16:14 1402依赖的JAR cxf-2.2.10.jar je ... -
Filter、Servlet、Listener区别与联系
2013-04-10 17:41 4184J2EE开发中,经常会使用到Filter、Servlet、L ... -
Apache POI组件使用eventusermodel模式读取Excel文档内容
2013-03-18 17:39 9118package com.test; import ja ... -
CXF之JAX-WS(转)
2012-12-18 17:31 1986CXF详解二 CXF之JAX-WS JAX-WS规范是一组 ... -
分析tomcat假死现象的过程
2012-10-15 15:50 0前段时间在公司遇到一个tomcat运行一段时间后(半个月左右 ... -
spring mail 通过HTTP代理发送邮件
2012-09-24 16:22 6664spring框架中org.spr ... -
多线程实现发送邮件功能
2012-09-14 18:44 11187通过Internet发送邮件,可能会在网络传输上面使用较多的 ... -
使用Spring mail通过socks代理发送邮件
2012-09-14 18:25 7135Spring框架提供了JavaMailSender接口及其实 ... -
plupload 上传组件,后台用java实现
2012-09-06 17:21 11488Plupload 是一个Web浏览器上的界面友好的文件上传模 ... -
POI读取大数据量的Excel文件
2012-09-06 11:58 15058POI读取Excel文件有两种方式,一种是使用usermod ... -
UML类图
2012-08-02 16:35 2045UML类图关系大全 1、关联双向关联:C1-C2:指 ... -
使用cxf的wsdl2java是遇到的问题
2012-03-13 10:50 3905对与同一个wsdl文件,我尝试过使用axis2是可以正常转过来 ... -
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题
2012-03-06 14:02 4698使用spring框架风中的javamail发送邮件,遇到了一些 ... -
J2EE使用ireport做导出PDF操作
2012-03-02 17:21 2695首先,在lib中,加入一下jar: jasperreport ...
相关推荐
xstream-1.4.19.jar
在处理日期时,XStream默认的转换策略可能无法满足所有需求,例如默认格式可能不符合项目规范,或者需要处理时区问题。这时,我们可以自定义一个DateConverter,用`@XStreamConverter`注解标记,以替换默认的转换器...
对于Map集合,XStream会使用键作为XML标签,值作为内容: ```java Map, String> map = new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); String xmlMap = xstream.toXML(map); ``` ...
Xstream上次对CVE-2020-26217处理并不彻底,虽然通过黑名单方法阻止了远程代码执行,但是仍然可以采用类似思路实现文件删除与服务器请求伪造。 影响版本 Xstream 修复版本 Xstream > = 1.4.15 风险等级 严重
6. **流式处理**:XStream可以将XML解析为事件流,这对于处理大型XML文件时可以节省内存。 7. **支持JSON**:除了XML,XStream还支持JSON格式的数据交换,使得与JavaScript和Web服务的交互更为便捷。 在实际应用中...
最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...
“xStream完整Jar包”提供了 XStream 库的完整功能,使得开发者能够方便地处理 XML 与 Java 对象之间的转换。无论是在数据交换、存储还是序列化需求中,XStream 都是一个值得信赖的工具,尤其适合那些寻求简洁代码和...
如果你需要保留这些信息,可以通过转换器来控制null值的序列化。 总之,XStream的转换器功能为我们提供了高度的灵活性,可以定制XML与Java对象之间的转换逻辑,以满足各种需求。正确地使用转换器,不仅可以提高代码...
例如,XStream提供了内置的转换器处理基本类型、集合、日期等,同时也支持用户自定义转换器以处理特定的复杂对象。 XStream-1.3.1版本是一个相对早期的稳定版本,它包含了对JDK1.4及以上的支持,同时提供了许多增强...
* XStream 的管理和监控工具可以帮助用户快速定位和解决问题。 * XStream 的管理和监控工具可以集成到 Oracle 企业管理器中,提供统一的管理界面。 Oracle Database XStream 是一个功能强大且灵活的数据捕获和事件...
XStream 在其早期版本中就存在这样的问题,因为它允许不受限制的反序列化,没有对输入数据进行足够的验证。 XStream 1.4.15 版本的更新主要目的是解决这些安全问题。开发者引入了新的安全特性,比如默认禁止不受...
1. 自动类型检测:XStream能够自动识别并处理各种基本类型的Java对象,如字符串、数字、日期等,无需额外配置。 2. 自定义转换器:如果默认的自动映射不能满足需求,用户可以通过自定义转换器来控制特定类的XML表示...
xstream最新版jar包
4. **XML命名空间支持**:在处理XML文档时,XStream可以处理XML命名空间,这对于解析符合XML标准的复杂文档至关重要。 5. **流式处理**:XStream支持流式处理XML,这意味着可以边读取XML边构建Java对象,或者边序列...
3. **自动类型转换**:Xstream支持自动类型转换,这意味着即使XML中的值是字符串类型,也能正确地转换回对应的Java类型,如日期、数字等。 4. **自定义转换器**:对于标准转换器无法处理的复杂对象或自定义类型,...
5. **集合处理**:XStream能够自动处理Java集合(如List、Set)和数组,将它们转换成XML的元素列表。 6. **命名空间支持**:XStream可以处理XML的命名空间,方便在复杂的XML文档结构中工作。 7. **安全性**:...
当需要将数据转换为XML格式以便于传输或处理时,工具如xStream就显得尤为重要。Java中的xStream库提供了一个简单易用的方式来将Java对象序列化为XML,反之亦然,即反序列化XML回Java对象。 **xStream简介** xStream...
XStream是一款强大的Java库,用于将Java对象序列化为XML,反之亦然。这个库的主要优点在于其简单易用的API和对复杂对象图的处理能力...在实际开发中,理解和掌握这些知识点对于有效地利用XStream进行数据处理至关重要。
通过深入学习和实践,开发者可以充分利用 XStream 提供的功能,提升项目中的数据处理效率。在阅读“xstream学习文档”时,建议重点理解其核心概念、使用示例以及自定义转换器的编写,以便在实际工作中游刃有余地应对...