· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [访谈] 网银安全系列访谈之:惊心动魄网银故事
· [热点专题] 网银安全系列 3G上网卡巡礼
· [订阅IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 跨站脚本十二问 四步防范Conficker
· [热点] Windows 7 RC版公开下载 憾缺中文版

JAVA深入了解:JavaBeans 增加XPath功能

发布时间:2007.11.09 04:58     来源:赛迪网技术技术社区    作者:baocl

向一个JavaBean请求'addressbook[1].state.code'是现在还在使用的和JavaBeans 进行交互的一个通常的方法,但是你现在可以更进一步使用功能更强大的XPath规范。

创建XPath的目的是访问和修改XML中的数据,但是Apache Jakarta的一个新项目允许你将强大的XPath规范的功能应用到普通的JavaBeans上。

作为一个例子,我们使用具有下面的结构的JavaBean :

Person.name 是一个字符串 String
Person.age 是一个整数
Person.birthtown 是一个Town对象
Person.address 是一个Address 对象的数组
Town.name 是一个字符串
Address.number 是一个字符串
Address.street 是一个字符串
Address.town 是一个Town对象

(为了简单没有提供源代码)

对于给定的Person对象,你可以使用"name"得到对象的名字,你可以使用"birthtown/name"得到出身地的名字,你也可以使用"address[number='21']/town/name"得到和地址(例如21)关联的城镇的名字。

除了更强大以外,XPath 和通常的bean符号的主要不同是使用反斜线('/')而不是句点('.')分隔元素,一旦你习惯这个特征就都会变得很简单。

下面的代码展示了使用JXPath 将XPath 符号应用到我们的JavaBean 结构是多么的简单:

import org.apache.commons.jxpath.JXPathContext;
....
Person person = ....;
JXPathContext context = JXPathContext.newContext(person);
System.out.println(context.getValue("name"));
System.out.println(context.getValue("age"));
System.out.println(context.getValue("birthtown/name"));
System.out.println(context.getValue("address[number='21']/street"));
System.out.println(context.getValue("address[number='21']/town/name"));
....
XPath可以用于设置值或者创建beans,当然也可以读取值,关于XPath和它的JXPath的实现的更多信息请参考JXPath站点 。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 快速开发时可以使用的Java文件工具方法 (11-08) · 在使用Java语言开发时要注意的性能设计 (11-08)
· 深入讲解Java语言中的函数动态调用方式 (11-08) · JAVA进阶:J2SE 1.4 中assertion 功能介绍 (11-08)
· JAVA基础入门:如何使用Java编写NT服务 (11-08) · Java编程:Vector在Java编程中的应用 (11-08)
· 如何使用PreparedStatement减少开发时间 (11-08) · 用JDring包设置类似于 cron的日程提醒 (11-08)
· 用反射机制确定基本数据类型属性 (11-08) · PHP程序如何调用功能强大的 JAVA 类库 (11-08)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
2009第七届中国电脑商年会直播
·创业投资系列访谈:产业..
·特别策划:视频网站系列..
·专题:网游虚拟货币新规..
专题:6月上市手机新品回顾及7月新机展望
·2009年中国电信业信息化..
·专题:把iPhone 3GS“解..
·WAPI重启国际标准进程 ..
专题:09年中盘点-联想春季打印机新品回顾
·InfoComm 2009 视听与集..
·网游背后的故事 网游服..
·[专题]联想ThinkPad T40..
BizSpark:微软为技术创业企业点燃火花
·社区活动:我的IT求知生..
·访谈:内网安全2009系列..
·安全访谈:网银安全之Sa..