程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JavaBeans 增加XPath功能

JavaBeans 增加XPath功能

編輯:關於JAVA

向一個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站點 。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved