ognl

OGNL是Object-Graph Navigation Language的縮寫,它是一種功能強大的表達式語言,通過它簡單一致的表達式語法,可以存取對象的任意屬性,調用對象的方法,遍歷整個對象的結構圖,實現字段類型轉化等功能。它使用相同的表達式去存取對象的屬性。這樣可以更好的取得數據。

OGNL是通常要結合Struts 2的標誌一起使用。主要是#、%和$這三個符號的使用。使用方法如下:
新建名爲Struts2_OGNL的Web工程

主要有三種用途:
訪問OGNL上下文和Action上下文,#相當於ActionContext.getContext();下表有幾個ActionContext中有用的屬性: 名稱 作用 例子
parameters 包含當前HTTP請求參數的Map #parameters.id[0]作用相當於request.getParameterValues(“id”).get(0);
request 包含當前HttpServletRequest的屬性(attribute)的Map #request.userName相當於request.getAttribute(“userName”)
session 包含當前HttpSession的屬性(attribute)的Map #session.userName相當於session.getAttribute(“userName”)
application 包含當前應用的ServletContext的屬性(attribute)的Map #application.userName相當於application.getAttribute(“userName”)
attr 用於按request > session > application順序訪問其屬性(attribute) #attr.userName相當於按順序在以上三個範圍(scope)內讀取userName屬性,直到找到爲止
用於過濾和投影(projecting)集合,如books.{?#this.price<100};
構造Map,如#{‘foo1’:’bar1’, ‘foo2’:’bar2’}。

發佈了60 篇原創文章 · 獲贊 16 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章