WEB开发网
开发学院WEB开发Jsp 给JavaBeans增加XPath功能 阅读

给JavaBeans增加XPath功能

 2008-01-05 09:30:07 来源:WEB开发网   
核心提示:向一个javaBean请求´addressbook[1].state.code´ 是现在还在使用的和JavaBeans 进行交互的一个通常的方法,但是你现在可以更进一步使用功能更强大的XPath规范,给JavaBeans增加XPath功能, 创建XPath的目的是访问和修改xml中的数据,但是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(http://cl.com.com/Click?q=07-HqWzI5r6thQfumBcRgUiQzxyYbfy)站点 。 

注:本文是为ZDNet翻译的系列文章之一,原文已经发表在ZDNet网站


Tags:JavaBeans 增加 XPath

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接