更新時間:2022-12-28 來源:黑馬程序員 瀏覽量:
OGNL的全稱是Object-Graph Navigation Language,即對象圖導航語言,它是一種功能強大的開源表達式語言。使用這種表達式語言可以通過某種表達式語法存取Java對象的任意屬性,調用Java對象的方法,以及實現類型轉行等。
了解OGNL的概念后,下面講解一下OGNL的組成。OGNL的操作實際上是圍繞OGNL結構的三個要素進行的,分別是表達式(expression)、上下文對象(context)和根對象(root)。這三個要素的具體說明如下。
表達式是整個OGNL的核心,OGNL會根據表達式到對象中取值。所有OGNL操作都是針對表達式解析后進行的,它表明了此次OGNL操作要“做什么”。實際上,表達式就是一個帶有語法含義的字符串,這個字符串規定了操作的類型和操作的內容。
上下文對象規定了OGNL操作“在哪里進行”。context對象是一個Map類型的對象,在表達式中訪問context中的對象,需要使用#號加對象名稱,即“#對象名稱”的形式。例如要獲取context對象中user對象的username值,可以如下書寫:
#user.username
根對象可以理解為OGNL的操作對象,OGNL可以對根對象進行取值或寫值等操作,表達式規定了“做什么”,而根對象則規定了“對誰操作”。實際上根對象所在的環境就是OGNL的上下文對象環境。