首頁常見問題正文

OGNL是什么?OGNL三要素介紹

更新時(shí)間:2022-12-28 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  OGNL的全稱是Object-Graph Navigation Language,即對象圖導(dǎo)航語言,它是一種功能強(qiáng)大的開源表達(dá)式語言。使用這種表達(dá)式語言可以通過某種表達(dá)式語法存取Java對象的任意屬性,調(diào)用Java對象的方法,以及實(shí)現(xiàn)類型轉(zhuǎn)行等。

  了解OGNL的概念后,下面講解一下OGNL的組成。OGNL的操作實(shí)際上是圍繞OGNL結(jié)構(gòu)的三個(gè)要素進(jìn)行的,分別是表達(dá)式(expression)、上下文對象(context)和根對象(root)。這三個(gè)要素的具體說明如下。

  1.表達(dá)式

  表達(dá)式是整個(gè)OGNL的核心,OGNL會根據(jù)表達(dá)式到對象中取值。所有OGNL操作都是針對表達(dá)式解析后進(jìn)行的,它表明了此次OGNL操作要“做什么”。實(shí)際上,表達(dá)式就是一個(gè)帶有語法含義的字符串,這個(gè)字符串規(guī)定了操作的類型和操作的內(nèi)容。

  2.上下文對象

  上下文對象規(guī)定了OGNL操作“在哪里進(jìn)行”。context對象是一個(gè)Map類型的對象,在表達(dá)式中訪問context中的對象,需要使用#號加對象名稱,即“#對象名稱”的形式。例如要獲取context對象中user對象的username值,可以如下書寫:

#user.username

  3.根對象

  根對象可以理解為OGNL的操作對象,OGNL可以對根對象進(jìn)行取值或?qū)懼档炔僮?,表達(dá)式規(guī)定了“做什么”,而根對象則規(guī)定了“對誰操作”。實(shí)際上根對象所在的環(huán)境就是OGNL的上下文對象環(huán)境。

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!