EL(Expression Language)是 JSP 2.0 引入的簡化資料存取語法,取代繁瑣的 <%= ... %>。本文系統整理 EL 關鍵字、11 大隱含物件、運算子優先序與自訂函式開發步驟,作為開發隨查手冊。
div mod eq ne lt gt le ge
and or not true false null instanceof empty
對應 Java 運算子:/ % == != < > <= >= && || ! boolean boolean null instanceof 空值判斷
| 物件 | 類型 | 對應 API |
|---|---|---|
| pageContext | Map | PageContext 物件本身 |
| pageScope | Map | Page 範圍屬性 |
| requestScope | Map | Request 範圍屬性 |
| sessionScope | Map | Session 範圍屬性 |
| applicationScope | Map | Application 範圍屬性 |
| param | Map | request.getParameter() |
| paramValues | Map | request.getParameterValues() |
| header | Map | request.getHeader() |
| headerValues | Map | request.getHeaders() |
| cookie | Map | request.getCookies() |
| initParam | Map | application.getInitParameter() |
[] .
()
- (一元) ! empty
* / div % mod
+ - (二元)
< > <= >= lt gt le ge
== != eq ne
&& and
|| or
? : (三元)
package elfunction;
public class Functions {
public static String toUpper(String v) { return v.toUpperCase(); }
}
/WEB-INF/tlds/elfunction.tld)
<function>
<name>toUpper</name>
<function-class>elfunction.Functions</function-class>
<function-signature>java.lang.String toUpper(java.lang.String)</function-signature>
</function>
/WEB-INF/tlds/*.tld,無需 web.xml 註冊<%@ taglib prefix="ELFun" uri="/WEB-INF/tlds/elfunction.tld" %>
${ELFun:toUpper("abcdefg")} <!-- 輸出 ABCDEFG -->
${empty obj} 判斷:null、空字串、空陣列、空 Collection、空 Map 皆回 true。${user.name} 若 user 為 null 不會拋 NPE,輸出空字串。${ 字面值,寫 \${ 或 $\{。