基本的OGNL語法是十分簡單的,當(dāng)然OGNL支持豐富的表達(dá)式,一般情況下,不用擔(dān)心OGNL的復(fù)雜性。例如有一個man對象,該對象有一個name屬性,那么使用OGNL來獲得該name屬性可以使用如下表達(dá)式:
OGNL表達(dá)式的基礎(chǔ)單元稱為導(dǎo)航鏈,簡稱為鏈。一個最簡單的鏈由如下部分組成。
>
屬性名稱:如上述示例中的name。
>
方法調(diào)用:hashCode()返回當(dāng)前對象的hash code。
>
數(shù)組元素:listeners[0]返回當(dāng)前對象的監(jiān)聽器列表中的第一個元素。
★說明★
OGNL表達(dá)式基于OGNL上下文中的當(dāng)前對象,一個“鏈”將使用上一個“鏈”的處理結(jié)果,開發(fā)者可以任意擴(kuò)展該鏈的長度,OGNL沒有限制。
例如,一個OGNL表達(dá)式如下:
name.toCharArray()[0].numericValue.toString() |
該表達(dá)式將按照如下步驟求值。
(1)獲得OGNL Context中初始對象或者是根對象(root對象)的name對象。
(2)調(diào)用toCharArray()方法,返回一個String類型對象。
(3)獲得該String對象的第一個字符。
(4)獲得該字符的numericValue屬性(該字符為一個Character對象,該對象有一個getNumericValue()方法,該方法返回一個Integer類型值)。
(5)將獲得的Integer對象轉(zhuǎn)換為一個String類型值(使用toString()方法)。
posted on 2009-08-13 13:55
jadmin 閱讀(83)
評論(0) 編輯 收藏