浏览 2308 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-26
最后修改:2008-12-26
例如,对于如下的bean: public class Person{ public String getName(){} public void setName(String name){} public Pocket getPocket(){} public void setPocket(Pocket pock){} } public class Pocket{ public int getObjNum(){} …… public String[] getObjects(){} …… } 为了获取如下的xml文件: <person> <name>xiaoxiao</name> <pocket> <number>2</number> <objects> <object>000001</object> <object>000002</object> </objects> </pocket> </person> 我需要准备两个.betwixt模版文件: Person.betwixt 和 Pocket.betwixt 那么,如何用一个模板文件搞定呢? betwixt提供一个加载配置文件的方法: //读取配置文件并加载 InputSource ins = new InputSource(new FileReader("D:\\workspace\\translate_demo\\cfg\\Person.betwixt")); beanWriter.getXMLIntrospector().register(ins); beanWriter.write(person); 然后编辑如下的.betwixt模板: <?xml version="1.0"?> <betwixt-config> <!--name of the class to map --> <class name="com.translate.demo.Person"> <!-- standard definitions (same as in standard .betwixt file) --> <element name="person"> <element name="name" property="name"/> <element name="ych-pocket"> <element property="pocket"/> </element> </element> </class> <class name="com.translate.demo.Pocket"> <element name="pocket"> <element name="number" property="objNum"/> <element name="objects"> <element name="object" property="objectName"/> </element> </element> </class> </betwixt-config> 好了,一个模板文件就搞定了~:) 注意: <element property="pocket"/> 注意这个元素,当元素是一个复杂结构时,这里的name属性会覆盖该结构的模板中的第一层元素名,所以为了结构清晰,这里最好不要写name属性。此时,会使用该结构的类的模板的第一层元素名: <class name="com.translate.demo.Pocket"> <element name="pocket"> …… 如果模板文件如下: <element name="pocket_hello" property="pocket"/> …… <class name="com.translate.demo.Pocket"> <element name="pocket"> …… 那么会使用pocket_hello作为结构名,得到的xml将是: <person> <name>xiaoxiao</name> <pocket_hello> <number>2</number> <objects> <object>000001</object> <object>000002</object> </objects> </pocket_hello> </person> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |