JavaWeb---EL(Expression Language)

1.什麼是EL?

El是表達式語言,全名爲Expression Language 簡稱EL .

EL能很方便的訪問大多數JSp內置的隱含對象,從而簡化編程.

2.爲什麼需要EL?

a.  JavaBean在jsp中的侷限性

獲取JavaBean屬性必須實例化

強制類型轉換

b.  如果頁面編寫出現邏輯錯誤,將會導致代碼執行錯誤,並且JSP頁面編譯頁面時也會產生錯誤

c.  EL可以很簡便的進行編程

3.EL的表達式.

${ EL exprission }

${ bean.name } 或  ${ bean['name'] }

${bean.name}實質是調用bean的getName()方法

4.EL的特點:

Ø    自動轉換類型

Ø  EL得到某個數據時可以自動轉換類型

Ø  對於類型的限制更加寬鬆

Ø  使用簡單

Ø  相比較在JSP中嵌入Java代碼,EL應用更簡單

Ø  EL語言中操作對象時,可以非常簡單地使用各種算術、關係、邏輯或空值測試運算符,簡化操作運算。如果要針對不同情況和條件進行輸出不同的信息,根本不再需要採用Java語言編程,就可以輕鬆實現條件化輸出,從而消除了大部分類型轉換的需要,同時也省略掉很多將字符串解析成數字的代碼,實現了自動類型轉換。

5.EL的語法:

  以“${”作爲開始,以“}”作爲結束

直接使用變量名獲取值$

${  username }

6.變量屬性範圍名稱

屬性範圍

            EL中的名稱

page

pageScope,例如${pageScope.username},表示在page範圍內查找username變量,找不到返回Null

request

requstScope

session

sessionScope

application

applicationScope

7.EL中的運算符:

運算符

代表運算

運算符

代表運算

+

加(算術)

>、gt

大於(比較)

-

減(算術)

<、lt

小於(比較)

*

乘(算術)

<=、le

小於等於(比較)

/、div

除(算術)

>=、ge

大於等於(比較)

%、mod

取模(算術)

==、=

等於(比較)

&&、and

與(邏輯)

!=、ne

不等於(比較)

||、or

或(邏輯)

x?y:z

條件求值

!、not

非(邏輯)

empty

檢查是否爲空

 

8.EL自定義函數:

  表達式語言允許用戶自定義函數。此函數必須採用public類中的   public static方法編寫並要映射到TLD標籤庫文件中。

EL函數的定義語法格式如下所示:

package com.msit.el;

 

/**

 * EL自定義函數

 *

 * @author admin

 *

 */

publicclassELFunction {

   /**

    * 判斷2個數據中的最大值

    *

    * @param a1

    * @param a2

    * @return最大值

    */

   publicstaticint max(int a1, int a2) {

      if (a1 > a2) {

         return a1;

      }else{

         return a2;

      }

   }

}

 

9.EL自定義函數的web.xml文件的配置

 <!-- JSP配置 -->

   <jsp-config>

      <!-- 標籤引用 -->

      <taglib>

         <!-- 標籤的使用鏈接 -->

         <taglib-uri>/ELFuctions</taglib-uri>

         <!-- 實際地址路徑 -->

         <taglib-location>/WEB-INF/tlds/ELFunctions.tld</taglib-location>

      </taglib>

</jsp-config>

10.使用標籤庫描述文件:

   <function>

 <name>max</name>

 <function-class>com.msit.el.ELFunction</function-class>

 <function-signature>intmax(int,int)</function-signature>

 </function>

11.引用自定義標籤的方式:

<%@ page contentType="text/html;charset=GB2312"%>

<%@ taglib prefix="myfn" uri="/ELFuctions"%>

<html>

<head>

<title>EL函數示範</title>

</head>

 

<body>

      <h2>EL函數示範</h2>

      比較2535,其中較大的值是:${myfn:max(25,35)}

</body>

</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章