BaoYaEr
Castor学习笔记
Java XML 数据绑定是一种代替 XML 文档模型的强大机制。castor框架就是应用于此类功能的框架。
直接用代码说明:
1.javabean
这个类是公共的
定义了公共的默认(没有参数)构造函数
定义了公共的
getX
和
setX
方法访问属性(数据)值
import
java.util.ArrayList;
import
java.util.List;
public
class
Bean
{
public
Bean()
{}
private
String name;
private
int
age;
private
String addr;
private
int
cod;
private
List list;
public
String getAddr()
{
return
addr;
}
public
void
setAddr(String addr)
{
this
.addr
=
addr;
}
public
int
getAge()
{
return
age;
}
public
void
setAge(
int
age)
{
this
.age
=
age;
}
public
String getName()
{
return
name;
}
public
void
setName(String name)
{
this
.name
=
name;
}
public
int
getCod()
{
return
cod;
}
public
void
setCod(
int
cod)
{
this
.cod
=
cod;
}
public
List getList()
{
if
(list
==
null
)
list
=
new
ArrayList();
return
list;
}
public
void
setList(List list)
{
this
.list
=
list;
}
}
2. 测试默认的数据绑定
import
java.io.File;
import
java.io.FileReader;
import
java.io.FileWriter;
import
java.util.ArrayList;
import
java.util.Iterator;
import
java.util.List;
import
org.exolab.castor.xml.Marshaller;
import
org.exolab.castor.xml.Unmarshaller;
public
class
CastorTest
{
public
static
void
main(String[] args)
{
Bean bean
=
new
Bean();
bean.setAddr(
"
gansu
"
);
bean.setAge(
25
);
bean.setName(
"
can
"
);
bean.setCod(
100
);
List list
=
new
ArrayList();
list.add(
33
);
list.add(
"
haha
"
);
bean.setList(list);
try
{
File file
=
new
File(
"
c:/castor.xml
"
);
if
(
!
file.exists())
file.createNewFile();
FileWriter fw
=
new
FileWriter(file);
Marshaller.marshal(bean, fw);
FileReader reader
=
new
FileReader(file);
Bean read
=
(Bean) Unmarshaller.unmarshal(Bean.
class
, reader);
System.out.println(read.getAddr());
System.out.println(read.getCod());
for
(Iterator iter
=
read.getList().iterator(); iter.hasNext();)
{
Object element
=
(Object) iter.next();
System.out.println(element);
}
}
catch
(Exception e)
{
//
TODO: handle exception
}
}
}
结果:
<?
xml version="1.0" encoding="UTF-8"
?>
<
bean
cod
="100"
age
="25"
>
<
name
>
can
</
name
>
<
list
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:type
="java:java.lang.Integer"
>
33
</
list
>
<
list
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:type
="java:java.lang.String"
>
haha
</
list
>
<
addr
>
gansu
</
addr
>
</
bean
>
对于具有基本类型值的属性创建元素的一个属性(本例中只有
number
属性通过
getNumber()
方法公开为
int
值)。
对于每个具有对象类型值的属性创建根元素的一个子元素(本例中的所有其他属性,因为它们是字符串)。
发表于 2007-05-25 13:10
大田斗
阅读(299)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
导航
BlogJava
首页
发新随笔
发新文章
联系
聚合
管理
统计
随笔: 32
文章: 427
评论: 144
引用: 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔档案
2008年12月 (1)
2008年4月 (2)
2008年2月 (1)
2008年1月 (1)
2007年12月 (3)
2007年11月 (1)
2007年10月 (3)
2007年7月 (2)
2007年6月 (1)
2007年4月 (2)
2007年3月 (3)
2007年2月 (5)
2007年1月 (3)
2006年12月 (4)
文章分类
axis(6)
(rss)
eclipse(7)
(rss)
Hibernate(30)
(rss)
html/js/css(107)
(rss)
java(106)
(rss)
linux(7)
(rss)
Lucene(7)
(rss)
spring(36)
(rss)
Spring CLOUd(1)
(rss)
Strtus(30)
(rss)
其它(48)
(rss)
开源opensource(48)
(rss)
数据库DateBase(30)
(rss)
设计模式(12)
(rss)
文章档案
2018年8月 (1)
2012年5月 (1)
2012年4月 (2)
2011年7月 (6)
2010年3月 (1)
2010年2月 (1)
2010年1月 (3)
2009年12月 (1)
2009年10月 (1)
2009年8月 (3)
2009年3月 (1)
2009年2月 (1)
2008年12月 (3)
2008年11月 (10)
2008年10月 (3)
2008年9月 (2)
2008年8月 (2)
2008年7月 (4)
2008年6月 (13)
2008年5月 (15)
2008年4月 (9)
2008年3月 (10)
2008年1月 (18)
2007年12月 (33)
2007年11月 (6)
2007年10月 (18)
2007年9月 (10)
2007年8月 (18)
2007年7月 (15)
2007年6月 (25)
2007年5月 (19)
2007年4月 (26)
2007年3月 (38)
2007年2月 (33)
2007年1月 (27)
2006年12月 (27)
2006年11月 (12)
java
Ajax特效网站
cndiy nio
GRO
Hani Suleiman's blog
Java之路
java论坛
J道
mule
mule 入门
oksonic(动画教程)
一路由你
中国eclipse
八进制
在线源码
多线程实战
天火
小米的blogjava
幻境伯克----jface/swt
很全的博克-强
每日一得
满江红
邢红瑞
飞翔
鸟诗选(js)
鸟食轩 (dhtml)
工具
apache中文手册
extjs学习
iconFindre
java 安全
javaresearch
java技巧网
js之王
matrix(study)
prototype api
spring中文
北京IT企业速查
在线流程图工具
雅虎翻译
朋友
Happyshow
hibernate异常
skywalker
sunshow
xf
亚光
同云博客
小弟鹏
张玉磊
昕
李阳
黄鸣
搜索
积分与排名
积分 - 1098793
排名 - 28
最新评论
1. re: hibernate.cfg.xml配置
好全啊 .. 棒棒哒 ~ !
--junqinag.yang
2. re: Quartz任务调度快速入门
我现在来看还是觉得不错
--小任
3. re: js中this的总结
评论内容较长,点击标题查看
--pam
4. re: Quartz任务调度快速入门
楼主辛苦
--yd
5. re: Quartz任务调度快速入门
顶了,内容写的很好
--sen
阅读排行榜
1. 网页不缓存(3538)
2. Form嵌套引起的问题 (2832)
3. 解决IE下CSS背景图片闪烁的Bug(2434)
4. Spring AOP的动态载入原理(2396)
5. 如何制作漂亮的Excel表格(2024)
评论排行榜
1. 北京户口--吃官司(5)
2. 开始→运行→输入的命令集锦(3)
3. 让网页上的所有图片动起来(2)
4. Dom4j 编码问题彻底解决 (1)
5. 心情不爽(1)