回覆列表
  • 1 # 使用者8163905457565

    EL表示式主要功能:用於訪pageContext,request,session,application範圍內儲存的資料。

    OGNL不僅可以訪問資料,還具有訪問方法,對集合進行操作等功能。

    OGNL是什麼?

    Object Graphics Navigation Language 物件圖導航語言。主要作用是對一些複雜物件的屬性和方法進行訪問。

    OGNL技術可以獨立使用,封裝在ognl.jar開發包中。

    2)OGNL工作原理

    OGNL工具由三部分構成,分別是

    a. OGNL引擎:負責解釋執行OGNL表示式,按表示式區root或map區域尋找資料。

    b. Root根物件區域:訪問該區域資料OGNL表示式簡潔方便。適合放置訪問頻繁的物件元素。

    c. Map物件儲存區 :訪問該區域需要使用“#key”訪問。適合放置訪問不頻繁的物件元素。

    使用時,給OGNL引擎指定一個表示式,該引擎根據表示式去Root區或Map區訪問物件的屬性或方法。

    *3)OGNL表示式語法

    a.訪問Root物件某個簡單屬性

    表示式: "屬性名"

    b.訪問Root物件某個陣列或者List集合

    表示式:"屬性名[0]"

    c.訪問Root物件某個Map集合

    表示式:"屬性名.key"或者"屬性名["key"]"

    d.訪問Root物件某個複合型別屬性address

    表示式: "address.子屬性"

    e.訪問Root物件某個複雜屬性 List<Address> addresses

    表示式:"addresses[0].子屬性"

    f.訪問Root物件的某個屬性的方法

    表示式:"屬性名.方法()"

    g.支援Java中的表示式和運算子

    h.定義一個List常量

    表示式:{"A","B","C"}

    i.定義一個Map常量

    表示式:#{"key1":value1,"key2":value2}

    j.訪問靜態常量或方法

    表示式:"@包名.型別@常量名或方法"

    上述語法如果訪問Map區域一樣使用,只要注意追加"#key".

    el表示式是什麼?

    一種簡單的計算規則,用於給標籤的屬性賦值,現在,也可以直接輸出。

    (1)訪問bean的屬性。

    方式一:

    ${user.name} : 容器會依次從pageContext,request,session,application查詢綁訂名稱為"user"的物件(即呼叫getAttribute方法),找到後,呼叫該物件的getName方法並輸出。如果值為null,會轉換成""輸出;

    另外,如果找不到該物件,也會輸出""。

    如果要指定查詢範圍,可以使用pageScope,requestScope,sessionScope,applicationScope,比如:${sessionScope.user.name}

    方式二:

    ${user["name"]}

    這種方式允許[]裡出現變數或者序號(從0開始,用來訪問陣列中的元素)

    (2)進行一些簡單的計算,計算結果可以直接輸出,也可以給標籤的屬性賦值。

    1)算術運算: "+","-","*","/","%"。注意"+"只能進行加法操作,不能進行連線操作。

    2)關係運算:">",">=","<","<=","==","!="。

    3)邏輯運算: "&&","||","!"。

    4)empty運算: empty 以下四種情況均為true

    空字串 空的集合 值為null 找不到對應的值

    (3)訪問請求引數值

    ${param.age}: 等價與 request.getParameter("age");

    ${paramValues.city} : 等價與 request.getParameterValues("citys");

    El表示式的查詢方式:

    el:${pageinfo.totalPage},pageContext->request-->session-->application,拿到pageinfo,呼叫pageinfo的getTotalPage()方法,獲取到值,然後輸出.${pageinfo["totalPage"]}

  • 中秋節和大豐收的關聯?
  • 成為一名網路主播需要準備哪些裝置,怎樣準備?