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>
比較25和35,其中較大的值是:${myfn:max(25,35)}
</body>
</html>