第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Apache Commons:Betwixt介绍

Apache Commons:Betwixt介绍

时间:2021-04-22 14:29:19

相关推荐

Apache Commons:Betwixt介绍

http://www.zihou.me/html//03/22/2952.html

Betwixt是Apache Commons家族中又一重要的成员,它可以很容易地将一个XML的内容转化为一个JavaBean,这一点与Digester倒很相似,但它同时也可以很容易地将一个JavaBean转化为XML格式的内容。

我们在很多情况下可能都干过这样的事情,那就是把一些内容输出为一个XML内容,每次做这样的工作时是不是觉得特别枯燥没劲?那你就可以试试Betwixt,让Betwixt来帮你做这样的工作,你会发现是如此的轻松容易!

一、官方网址:

/betwixt/ 截至到目前最新版本是0.8。

二、例子

1、 将JavaBean转为XML内容

代码如下:

新创建一个Person类

public classPersonBean {

privateString name;

private intage;

/** Need to allow bean to be created via reflection */

publicPersonBean() {}

publicPersonBean(String name,intage) {

this.name = name;

this.age = age;

}

publicString getName() {

returnname;

}

public voidsetName(String name) {

this.name = name;

}

public intgetAge() {

returnage;

}

public voidsetAge(intage) {

this.age = age;

}

publicString toString() {

return“PersonBean[name='" + name + "',age='" + age + "']“;

}

}

再创建一个WriteExampleApp类:

importjava.io.StringWriter;

importmons.betwixt.io.BeanWriter;

public classWriteExampleApp {

/**

* 创建一个例子Bean,并将它转化为XML.

*/

public static final voidmain(String [] args)throwsException {

// 先创建一个StringWriter,我们将把它写入为一个字符串

StringWriter outputWriter =newStringWriter();

// Betwixt在这里仅仅是将Bean写入为一个片断

// 所以如果要想完整的XML内容,我们应该写入头格式

outputWriter.write(“<?xml version=’1.0′ encoding=’UTF-8′ ?>\n”);

// 创建一个BeanWriter,其将写入到我们预备的stream中

BeanWriter beanWriter =newBeanWriter(outputWriter);

// 配置betwixt

// 更多详情请参考java docs 或最新的文档

beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);

beanWriter.getBindingConfiguration().setMapIDs(false);

beanWriter.enablePrettyPrint();

// 如果这个地方不传入XML的根节点名,Betwixt将自己猜测是什么

// 但是让我们将例子Bean名作为根节点吧

beanWriter.write(“person”,newPersonBean(“John Smith”, 21));

//输出结果

System.out.println(outputWriter.toString());

// Betwixt写的是片断而不是一个文档,所以不要自动的关闭掉writers或者streams,

//但这里仅仅是一个例子,不会做更多事情,所以可以关掉

outputWriter.close();

}

}

2、 将XML转化为JavaBean

importjava.io.StringReader;

importmons.betwixt.io.BeanReader;

public classReadExampleApp {

public static final voidmain(String args[])throwsException{

// 先创建一个XML,由于这里仅是作为例子,所以我们硬编码了一段XML内容

StringReader xmlReader =newStringReader(

“<?xml version=’1.0′ encoding=’UTF-8′ ?> <person><age>25</age><name>James Smith</name></person>”);

//创建BeanReader

BeanReader beanReader =newBeanReader();

//配置reader

beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);

beanReader.getBindingConfiguration().setMapIDs(false);

//注册beans,以便betwixt知道XML将要被转化为一个什么Bean

beanReader.registerBeanClass(“person”, PersonBean.class);

//现在我们对XML进行解析

PersonBean person = (PersonBean) beanReader.parse(xmlReader);

//输出结果

System.out.println(person);

}

}

通过上面的例子,是不是觉得非常简单?当然上面只是简单的例子,更多的功能应用还需要自己去研究。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。