- 浏览: 187168 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
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 4432简介 倒排索引源 ... -
大数据处理--BitSet
2014-06-28 11:01 1408java.util.BitSet可以按位存储。计算机中一个字 ... -
大数据处理--BloomFilter
2014-06-28 10:58 937BloomFilter——大规 ... -
hadoop 2.x升级异常
2014-06-19 11:54 24321、通过FileSystem这个API去访问hdfs上面的 ... -
Windows 编译Hadoop的Eclipse插件
2013-07-24 00:53 0http://www.cnblogs.com/fly ... -
log4j指定配置文件路径
2013-07-09 11:15 1971在默认情况下 log4j 会从WEB-INF/cl ... -
使用CXF发布和调用webservice
2013-05-08 16:14 1419依赖的JAR cxf-2.2.10.jar je ... -
Filter、Servlet、Listener区别与联系
2013-04-10 17:41 4351J2EE开发中,经常会使用到Filter、Servlet、L ... -
Apache POI组件使用eventusermodel模式读取Excel文档内容
2013-03-18 17:39 9246package com.test; import ja ... -
CXF之JAX-WS(转)
2012-12-18 17:31 2011CXF详解二 CXF之JAX-WS JAX-WS规范是一组 ... -
分析tomcat假死现象的过程
2012-10-15 15:50 0前段时间在公司遇到一个tomcat运行一段时间后(半个月左右 ... -
spring mail 通过HTTP代理发送邮件
2012-09-24 16:22 6755spring框架中org.spr ... -
多线程实现发送邮件功能
2012-09-14 18:44 11240通过Internet发送邮件,可能会在网络传输上面使用较多的 ... -
使用Spring mail通过socks代理发送邮件
2012-09-14 18:25 7192Spring框架提供了JavaMailSender接口及其实 ... -
plupload 上传组件,后台用java实现
2012-09-06 17:21 11533Plupload 是一个Web浏览器上的界面友好的文件上传模 ... -
POI读取大数据量的Excel文件
2012-09-06 11:58 15104POI读取Excel文件有两种方式,一种是使用usermod ... -
UML类图
2012-08-02 16:35 2065UML类图关系大全 1、关联双向关联:C1-C2:指 ... -
使用cxf的wsdl2java是遇到的问题
2012-03-13 10:50 3982对与同一个wsdl文件,我尝试过使用axis2是可以正常转过来 ... -
spring mail 发送邮件,没有主题,没有收件人,显示乱码问题
2012-03-06 14:02 4755使用spring框架风中的javamail发送邮件,遇到了一些 ... -
J2EE使用ireport做导出PDF操作
2012-03-02 17:21 2721首先,在lib中,加入一下jar: jasperreport ...
相关推荐
如果你需要保留这些信息,可以通过转换器来控制null值的序列化。 总之,XStream的转换器功能为我们提供了高度的灵活性,可以定制XML与Java对象之间的转换逻辑,以满足各种需求。正确地使用转换器,不仅可以提高代码...
- **自定义XML输出**:开发者可以通过配置或者使用Annotated Classes来控制XML的生成,如字段的命名、顺序以及是否省略null值等。 - **安全的序列化**:XStream提供了一种安全模式,可以防止恶意代码通过XML序列...
- 解析和修改Excel文件中的数据,如读取单元格值、设置公式、处理样式和格式。 - 可能会涉及到使用Xalan进行数据转换,或者使用XMLBeans进行XML与Java对象之间的映射。 - 如果涉及安全性,可能还会介绍如何利用...
4.4.4 null值 4.4.5 级联属性 4.4.6 集合类型属性 4.4.7 简化配置方式 4.4.8 自动装配 4.5 方法注入 4.5.1 lookup方法注入 4.5.2 方法替换 4.6 之间的关系 4.6.1 继承 4.6.2 依赖 4.6.3 引用 4.7 整合多个配置文件 ...
4.4.4 null值 4.4.5 级联属性 4.4.6 集合类型属性 4.4.7 简化配置方式 4.4.8 自动装配 4.5 方法注入 4.5.1 lookup方法注入 4.5.2 方法替换 4.6 之间的关系 4.6.1 继承 4.6.2 依赖 4.6.3 引用 4.7 整合多个配置文件 ...
一个JSON对象用大括号`{}`包围,键值对之间用逗号分隔,键是字符串,用双引号包围,值可以是各种数据类型,如字符串、数字、布尔值、数组、null,或者另一个JSON对象。例如:`{"key": "value", "anotherKey": 42}`。...