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