- 浏览: 181766 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
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 4344简介 倒排索引源 ... -
大数据处理--BitSet
2014-06-28 11:01 1207java.util.BitSet可以按位存储。计算机中一个字 ... -
大数据处理--BloomFilter
2014-06-28 10:58 870BloomFilter——大规 ... -
hadoop 2.x升级异常
2014-06-19 11:54 22401、通过FileSystem这个API去访问hdfs上面的 ... -
Windows 编译Hadoop的Eclipse插件
2013-07-24 00:53 0http://www.cnblogs.com/fly ... -
log4j指定配置文件路径
2013-07-09 11:15 1856在默认情况下 log4j 会从WEB-INF/cl ... -
使用CXF发布和调用webservice
2013-05-08 16:14 1354依赖的JAR cxf-2.2.10.jar je ... -
Filter、Servlet、Listener区别与联系
2013-04-10 17:41 4132J2EE开发中,经常会使用到Filter、Servlet、L ... -
Apache POI组件使用eventusermodel模式读取Excel文档内容
2013-03-18 17:39 9009package com.test; import ja ... -
CXF之JAX-WS(转)
2012-12-18 17:31 1953CXF详解二 CXF之JAX-WS JAX-WS规范是一组 ... -
分析tomcat假死现象的过程
2012-10-15 15:50 0前段时间在公司遇到一个tomcat运行一段时间后(半个月左右 ... -
spring mail 通过HTTP代理发送邮件
2012-09-24 16:22 6573spring框架中org.spr ... -
多线程实现发送邮件功能
2012-09-14 18:44 11104通过Internet发送邮件,可能会在网络传输上面使用较多的 ... -
使用Spring mail通过socks代理发送邮件
2012-09-14 18:25 7028Spring框架提供了JavaMailSender接口及其实 ... -
plupload 上传组件,后台用java实现
2012-09-06 17:21 11418Plupload 是一个Web浏览器上的界面友好的文件上传模 ... -
POI读取大数据量的Excel文件
2012-09-06 11:58 14949POI读取Excel文件有两种方式,一种是使用usermod ... -
UML类图
2012-08-02 16:35 2006UML类图关系大全 1、关联双向关联:C1-C2:指 ... -
使用cxf的wsdl2java是遇到的问题
2012-03-13 10:50 3785对与同一个wsdl文件,我尝试过使用axis2是可以正常转过来 ... -
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题
2012-03-06 14:02 4610使用spring框架风中的javamail发送邮件,遇到了一些 ... -
J2EE使用ireport做导出PDF操作
2012-03-02 17:21 2614首先,在lib中,加入一下jar: jasperreport ...
相关推荐
xstream-1.4.19.jar
Xstream上次对CVE-2020-26217处理并不彻底,虽然通过黑名单方法阻止了远程代码执行,但是仍然可以采用类似思路实现文件删除与服务器请求伪造。 影响版本 Xstream 修复版本 Xstream > = 1.4.15 风险等级 严重
最齐全的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包
No field 'null' found in class '.....(注解的类路径)' ---- Debugging information ---- message : No field 'null' found in class '.....' cause-exception : ...
xstream-1.4.20.jar
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...
xstream jar包,java对象转xml以及xml转java对象,操作很简单。
修改XStream源码,解决SAE不支持XStream的问题。
xstream 1.2 ,xstream 1.2.2.jar xstream 1.2 ,xstream 1.2.2.jar
XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...
XStream DOC
XStream解析XML实例
xstream-1.4.7.jar XML
xstream xstream-1.4.5.jar
xstream-1.4.2
xstream-1.4.2.jar,官网上也有,由于本人分没了,希望有分的同志给点分。如果你也每份,请上官网下,地址:http://xstream.codehaus.org/download.html
xstream所需要的jar包,xstream-1.4.9.jar、dom4j-1.6.1.jar、xpp3_min-1.1.4c.jar等
Xstream.Core 源代码 C# Xstream.Core 源代码 C#
XStream解析xml demo