上篇文章介绍了程序整合的准备工作、结合MarshallingView视图完成jaxb2转换XML、xStream转换XML工作,这次将介绍castor、jibx转换XML。
还有MappingJacksonView用Jackson转换JSON,自己拓展AbstractView定义Jsonlib的视图完成JSON-lib转换JSON。
四、 用Castor转换XML
1、 castor可以通过一个mapping.xml文件对即将转换的Java对象进行描述,然后可以将Java对象按照描述的情况输出XML内容。利用castor转换xml需要添加如下jar包:
如果你还不清楚castor,可以阅读:
for csblogs:http://www.cnblogs.com/hoojo/archive/2011/04/25/2026819.html
for csdn:aspx">http://blog.csdn.net/IBM_hoojo/archive/2011/04/25/6360916.aspx
2、 你需要在dispatcher.xml中添加castor的相关视图,配置如下:
<--
继承MarshallingView,重写locateToBeMarshalled方法;
解决对象添加到ModelAndView中,转换后的xml是BindingResult信息的bug
-->
mapping.xml配置
< xml version="1.0" encoding="UTF-8" >
http://castor.org/mapping.dtd">
关于mapping.xml配置的介绍,你可以参考html">http://www.cnblogs.com/hoojo/archive/2011/04/25/2026819.html
这篇文章的第三栏目。
3、 在使用Spring的MarshallingView的时候,转换的xml结果有时候会带有BindingResult对象的信息。所以解决办法是重写MarshallingView里面的locateToBeMarshalled方法,这样就可以解决了。下面是重新Marsh