当前位置: 首页 > 图文教程 > 认证考试 > java认证 > JAVA深入了解:JavaBeans 增加XPath功能

java认证
JAVA里字符编码的探索与理解
Java基本数据类型与流的操作方法
Web应用中Java的速度真相探讨
区分JAVA引用类型和原始类型
Java程序开发过程中异常处理的特殊情况
共享内存在Java中的实现和应用
Java复杂数据类型用法
漫谈Java程序设计中的接口应用
Java数据库编程中的几个常用技巧
Java中对HashMap的深度分析与比较
JavaBean与EJB的不同
Java技术 关于EJB调用原理分析
JAVA基础:Enterprise JavaBeans 入门
JAVA:EJB 的异常处理的最佳做法
JAVA:使用Axis开发Web Service程序
Java 中对文件的读写操作之比较
深入解析Java的新特性assertion
Java基础知识:你是否了解KVM的常量池
Static和Final修饰类属性变量及初始化
什么是基于Java的责任链模式

java认证 中的 JAVA深入了解:JavaBeans 增加XPath功能


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 59 ::
收藏到网摘: n/a

向一个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站点 。